Submission #47799948


Source Code Expand

#ABC164E Two Currencies

from sortedcontainers import SortedSet,SortedList

#入力受取
N,M,S=map(int,input().split()); G=[[] for _ in range(N)]
for _ in range(M):
    u,v,a,b=map(int,input().split())
    G[u-1].append((v-1,a,b));G[v-1].append((u-1,a,b))
H=[tuple(map(int,input().split())) for _ in range(N)]

#DP[i][s]: 地点iに銀貨s枚を持って到達する最短時間
DP=[[10**18]*2501 for _ in range(N)]

#sortedcontainersを用いたDijkstra法を行う  もちろん不利
Q=SortedSet([(0,0,min(S,2500))])  #経過時間, 現在地, 残銀貨
while Q:
    time,now,money=Q.pop(0)
    if DP[now][money]<time: continue
    DP[now][money]=time

    #両替を行う遷移
    rate,cost=H[now]
    if DP[now][min(2500,money+rate)]>time+cost:
        DP[now][min(2500,money+rate)]=time+cost
        Q.add((time+cost,now,min(2500,money+rate)))

    #次の目的地に移動する遷移
    for next,need,cost in G[now]:
        if money<need: continue  #おかねがたりません
        if DP[next][money-need]>time+cost:
            DP[next][money-need]=time+cost
            Q.add((time+cost,next,money-need))

#答えを出力
for i in range(1,N): print(min(DP[i]))

Submission Info

Submission Time
Task E - Two Currencies
User navel_tos
Language Python (PyPy 3.10-v7.3.12)
Score 500
Code Size 1218 Byte
Status AC
Exec Time 1006 ms
Memory 133864 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 5
AC × 27
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt
All line_1.txt, line_2.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt
Case Name Status Exec Time Memory
line_1.txt AC 197 ms 89932 KiB
line_2.txt AC 190 ms 89520 KiB
random_01.txt AC 968 ms 124628 KiB
random_02.txt AC 893 ms 132276 KiB
random_03.txt AC 958 ms 128656 KiB
random_04.txt AC 1006 ms 128264 KiB
random_05.txt AC 982 ms 128968 KiB
random_06.txt AC 951 ms 125580 KiB
random_07.txt AC 944 ms 122344 KiB
random_08.txt AC 940 ms 125452 KiB
random_09.txt AC 931 ms 120856 KiB
random_10.txt AC 956 ms 133864 KiB
random_11.txt AC 971 ms 126136 KiB
random_12.txt AC 947 ms 125980 KiB
random_13.txt AC 930 ms 124248 KiB
random_14.txt AC 942 ms 122688 KiB
random_15.txt AC 865 ms 114852 KiB
random_16.txt AC 995 ms 127488 KiB
random_17.txt AC 881 ms 131768 KiB
random_18.txt AC 946 ms 123608 KiB
random_19.txt AC 894 ms 119212 KiB
random_20.txt AC 929 ms 121092 KiB
sample_01.txt AC 174 ms 89520 KiB
sample_02.txt AC 188 ms 89488 KiB
sample_03.txt AC 222 ms 91964 KiB
sample_04.txt AC 199 ms 89636 KiB
sample_05.txt AC 174 ms 89772 KiB