提出 #27451237
ソースコード 拡げる
#ベルマンフォード負経路検出版
#参考(二つの内容を合わせた)
#https://qiita.com/kazukazukazukazu/items/e5db00a3aefb1f5ed72f
#https://sepat.hatenablog.com/entry/2019/08/15/223212
inf = float('inf')
class BellmanFord():
def __init__(self, N):
self.N = N
self.edges = []
def add(self, u, v, d, directed=False):
"""
u = from, v = to, d = cost
directed = Trueのとき、有向グラフである。
"""
if directed is False:
self.edges.append([u, v, d])
self.edges.append([v, u, d])
else:
self.edges.append([u, v, d])
def BellmanFord_search(self, start):
"""
:param s: 始点
:return: d[i] 始点sから各点iまでの最短経路
"""
# infならたどり着けず
# -infなら"通りたいパスに"負の閉路が存在する
D = [inf for i in range(self.N)]
D[start] = 0
for i in range(self.N*2):
for u,v,d in self.edges:
if D[v] > D[u] + d:
D[v] = D[u] + d
#2巡目負経路が存在する場合の動き
if i>=self.N:
D[v]=-inf
return D
N,M = map(int, input().split())
ABC = [list(map(int, input().split())) for _ in range(M)]
graph = BellmanFord(N)
for a,b,c in ABC:
graph.add(a-1,b-1,-c,True)
d = graph.BellmanFord_search(0)
if d[N-1]==-inf:
print('inf')
else:
print(-d[N-1])
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Score Attack |
| ユーザ | H20 |
| 言語 | PyPy3 (7.3.0) |
| 得点 | 400 |
| コード長 | 1581 Byte |
| 結果 | AC |
| 実行時間 | 194 ms |
| メモリ | 75156 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 194 ms | 61496 KiB |
| sample_02.txt | AC | 52 ms | 61508 KiB |
| sample_03.txt | AC | 51 ms | 61528 KiB |
| subtask_1_1.txt | AC | 78 ms | 73148 KiB |
| subtask_1_10.txt | AC | 60 ms | 65792 KiB |
| subtask_1_11.txt | AC | 85 ms | 73760 KiB |
| subtask_1_12.txt | AC | 137 ms | 75100 KiB |
| subtask_1_13.txt | AC | 60 ms | 70088 KiB |
| subtask_1_14.txt | AC | 128 ms | 74348 KiB |
| subtask_1_15.txt | AC | 183 ms | 75156 KiB |
| subtask_1_16.txt | AC | 50 ms | 61924 KiB |
| subtask_1_17.txt | AC | 60 ms | 66424 KiB |
| subtask_1_18.txt | AC | 116 ms | 75048 KiB |
| subtask_1_19.txt | AC | 125 ms | 74760 KiB |
| subtask_1_2.txt | AC | 103 ms | 73932 KiB |
| subtask_1_20.txt | AC | 64 ms | 73088 KiB |
| subtask_1_21.txt | AC | 95 ms | 73704 KiB |
| subtask_1_22.txt | AC | 187 ms | 75088 KiB |
| subtask_1_23.txt | AC | 53 ms | 61940 KiB |
| subtask_1_24.txt | AC | 122 ms | 74896 KiB |
| subtask_1_25.txt | AC | 96 ms | 74232 KiB |
| subtask_1_26.txt | AC | 131 ms | 74520 KiB |
| subtask_1_27.txt | AC | 140 ms | 74504 KiB |
| subtask_1_3.txt | AC | 87 ms | 73856 KiB |
| subtask_1_4.txt | AC | 106 ms | 73860 KiB |
| subtask_1_5.txt | AC | 92 ms | 73544 KiB |
| subtask_1_6.txt | AC | 126 ms | 74168 KiB |
| subtask_1_7.txt | AC | 96 ms | 74288 KiB |
| subtask_1_8.txt | AC | 103 ms | 73940 KiB |
| subtask_1_9.txt | AC | 49 ms | 61944 KiB |