AtCoder Beginner Contest 183 C. Travel【Python】

https://atcoder.jp/contests/abc183/tasks/abc183_c
AtCoder ProblemsのRecommendationで Difficulty: 335、Solve Probability: 51%でした。

import itertools

N, K = map(int, input().split())
T = []
for i in range(N):
    T.append(list(map(int, input().split())))

l = [i for i in range(1, N)]
ans = 0
for v in itertools.permutations(l):
    distance = 0
    #現在の都市
    c = 0
    count = 0
    for d in v:
        distance += T[c][d]
        #現在の都市を更新
        c = d
        count += 1
        
        #最後に都市1に戻る
        if count == N-1:
            distance += T[c][0]

    if distance == K:
        ans += 1
print(ans)