문제
import sys
def DFS(level, cost):
global min_cost
if level == N:
if costs[res[level - 1]][0] == 0:
cost = 1200
cost += costs[res[level - 1]][0]
if min_cost > cost:
min_cost = cost
return
if min_cost <= cost:
return
for i in range(1, N):
if ch[i] == 0:
if costs[res[level - 1]][i] == 0:
continue
res[level] = i
ch[i] = 1
DFS(level + 1, cost + costs[res[level - 1]][i])
ch[i] = 0
N = int(sys.stdin.readline())
costs = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
min_cost = 1200
ch = [0] * N
ch[0] = 1
res = [0] * N
DFS(1, 0)
print(min_cost)