結果
問題 | No.2712 Play more! |
ユーザー |
|
提出日時 | 2024-04-13 10:08:43 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 476 ms / 2,000 ms |
コード長 | 1,647 bytes |
コンパイル時間 | 302 ms |
コンパイル使用メモリ | 82,008 KB |
実行使用メモリ | 78,392 KB |
最終ジャッジ日時 | 2024-10-02 23:57:53 |
合計ジャッジ時間 | 6,092 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
N, M = map(int, input().split())A = list(map(int, input().split()))G = [[] for _ in range(N)]Grev = [[] for _ in range(N)]E = []for i in range(M):a, b, c = map(int, input().split())a -= 1b -= 1G[a].append(b)c *= -1c += A[b]E.append((a, b, c))Grev[b].append(a)def BF(start):# Bellman-Fordscore = [-float('inf')] * N # スタート地点からの最小距離score[start] = A[start]for i in range(N):update = False # 更新が行われたかfor u, v, weight in E:if score[v] < score[u] + weight:score[v] = score[u] + weightupdate = Trueif not update:break# 負閉路が存在するときは負閉路内の頂点リストを返すif i == N - 1:st = set()for u, v, weight in E:if score[v] < score[u] + weight:score[v] = score[u] + weightst.add(v)return 1, score, streturn 0, score, 0from collections import deque# print(E)state, score, st = BF(0) # ノード0から各地点の最短距離if state == 0:print(score[N-1])else:sctmp = score[N-1]goal = stque = deque()visited = [False]*Nstt = N-1visited[stt] = Trueque.append(stt)# print(goal)while que:now = que.popleft()for to in Grev[now]:if visited[to] == False:if to in goal:print('inf')exit()visited[to] = Trueque.append(to)print(sctmp)