import sys
input = lambda : sys.stdin.readline().rstrip()
INF = sys.maxsize
N,M = map(int,input().split())
G = [[INF]*(N+1) for _ in range(N+1)]
for _ in range(M):
a,b,cost = map(int,input().split())
G[a][b] = cost
# 초기화
for i in range(1,N+1):
G[i][i] = 0
# 경유지점 k를 거치는 i->j
for k in range(1,N+1):
for i in range(1,N+1):
for j in range(1,N+1):
G[i][j] = min(G[i][j],G[i][k]+G[k][j])
# 정답출력
answer = INF
for i in range(N+1):
for j in range(N+1):
if i!=j:
answer = min(answer,G[i][j]+G[j][i])
print(answer if answer != INF else -1)
댓글