
Photo by
3sp5p
ほぼ日刊競プロ ABC182 C - Travel
問題文
N 個の都市があります。都市 i から都市 j へ移動するには T
i,jの時間がかかります。
都市 1 を出発し、全ての都市をちょうど 1 度ずつ訪問してから都市 1 に戻るような経路のうち、移動時間の合計がちょうど K になるようなものはいくつありますか?
考えたこと
itertoolsを用いて準列を用いる.
N,K = map(int,input().split())
Tlist = []
for i in range(N):
T = list(map(int,input().split()))
Tlist.append(T)
#print(Tlist)
ans = 0
root = tuple()
for v in itertools.permutations(range(1,N),N-1):
root=(0,)+v+(0,)
temp = 0
for i in range(N):
#print (Tlist[root[i]][root[i+1]])
temp+=Tlist[root[i]][root[i+1]]
if temp==K:
ans+=1
print (ans)