結果
問題 | No.1 道のショートカット |
ユーザー | roaris |
提出日時 | 2019-08-22 14:02:55 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,131 bytes |
コンパイル時間 | 249 ms |
コンパイル使用メモリ | 87,060 KB |
実行使用メモリ | 76,808 KB |
最終ジャッジ日時 | 2023-09-22 13:34:27 |
合計ジャッジ時間 | 5,237 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge12 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 77 ms
71,452 KB |
testcase_01 | AC | 74 ms
71,616 KB |
testcase_02 | AC | 76 ms
71,188 KB |
testcase_03 | AC | 75 ms
71,452 KB |
testcase_04 | AC | 78 ms
71,184 KB |
testcase_05 | AC | 76 ms
71,276 KB |
testcase_06 | AC | 75 ms
71,088 KB |
testcase_07 | AC | 75 ms
71,428 KB |
testcase_08 | AC | 83 ms
76,276 KB |
testcase_09 | AC | 77 ms
75,856 KB |
testcase_10 | AC | 80 ms
75,816 KB |
testcase_11 | AC | 86 ms
76,808 KB |
testcase_12 | WA | - |
testcase_13 | AC | 82 ms
76,536 KB |
testcase_14 | WA | - |
testcase_15 | AC | 74 ms
71,412 KB |
testcase_16 | WA | - |
testcase_17 | AC | 75 ms
71,516 KB |
testcase_18 | AC | 74 ms
71,572 KB |
testcase_19 | AC | 73 ms
71,276 KB |
testcase_20 | AC | 76 ms
75,772 KB |
testcase_21 | AC | 75 ms
71,356 KB |
testcase_22 | AC | 75 ms
71,412 KB |
testcase_23 | AC | 82 ms
76,344 KB |
testcase_24 | AC | 82 ms
76,588 KB |
testcase_25 | AC | 77 ms
75,756 KB |
testcase_26 | AC | 75 ms
71,616 KB |
testcase_27 | AC | 83 ms
76,504 KB |
testcase_28 | AC | 77 ms
71,316 KB |
testcase_29 | WA | - |
testcase_30 | AC | 81 ms
75,848 KB |
testcase_31 | AC | 81 ms
75,684 KB |
testcase_32 | WA | - |
testcase_33 | AC | 80 ms
75,872 KB |
testcase_34 | WA | - |
testcase_35 | AC | 79 ms
75,784 KB |
testcase_36 | WA | - |
testcase_37 | AC | 80 ms
75,776 KB |
testcase_38 | AC | 76 ms
71,324 KB |
testcase_39 | AC | 75 ms
71,272 KB |
testcase_40 | WA | - |
testcase_41 | AC | 75 ms
71,084 KB |
testcase_42 | AC | 75 ms
71,592 KB |
testcase_43 | AC | 74 ms
71,576 KB |
ソースコード
import sys input = sys.stdin.readline from heapq import heappush, heappop def dijkstra(start): distance = [10**18] * N distance[start] = 0 priority_queue = [] heappush(priority_queue, (distance[start], start, 0)) while len(priority_queue) > 0: current_dist, current_node, money = heappop(priority_queue) if distance[current_node] < current_dist: continue for next_node, w, m in adj_list[current_node]: if distance[next_node] > distance[current_node] + w and money + m <= C: distance[next_node] = distance[current_node] + w heappush(priority_queue, (distance[next_node], next_node, money + m)) return distance N = int(input()) C = int(input()) V = int(input()) adj_list = [[] for _ in range(N)] S = list(map(int, input().split())) T = list(map(int, input().split())) Y = list(map(int, input().split())) M = list(map(int, input().split())) for Si, Ti, Yi, Mi in zip(S, T, Y, M): adj_list[Si-1].append((Ti-1, Mi, Yi)) d = dijkstra(0)[N-1] if d == 10 ** 18: print(-1) else: print(d)