Submission #12430772


Source Code Expand

import heapq

def main():
    N, M, S = map(int, input().split())
    AB = [[] for _ in range(N)]
    maxA = 0
    for _ in range(M):
        u, v, a, b = map(int, input().split())
        AB[u - 1].append((a, b, v - 1))
        AB[v - 1].append((a, b, u - 1))
        maxA = max(maxA, a)
    for i in range(N):
        AB[i].sort()

    CD = [tuple(map(int, input().split())) for _ in range(N)]
    maxS = N * maxA
    cur = [(0, 0, S)]  # (time, station, silver)
    T = [-1] * N
    tc = N
    P = [-1] * N
    while tc:
        t, u, s = heapq.heappop(cur)
        if s <= P[u]:
            continue
        P[u] = s
        if T[u] == -1:
            T[u] = t
            tc -= 1
        for a, b, v in AB[u]:
            if s < a:
                break
            if P[v] < s - a:
                heapq.heappush(cur, (t + b, v, s - a))
        if s != maxS:
            c, d = CD[u]
            min_a = AB[u][0][0]
            k = max(1, (min_a - s + c  - 1) // c)
            heapq.heappush(cur, (t + k * d, u, min(s + k * c, maxS)))
    print('\n'.join(map(str, T[1:])))

main()

Submission Info

Submission Time
Task E - Two Currencies
User t_sawada
Language Python (3.8.2)
Score 500
Code Size 1129 Byte
Status AC
Exec Time 140 ms
Memory 9332 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 21 ms 9120 KiB
line_2.txt AC 140 ms 9120 KiB
random_01.txt AC 21 ms 9212 KiB
random_02.txt AC 27 ms 9236 KiB
random_03.txt AC 22 ms 9016 KiB
random_04.txt AC 23 ms 9128 KiB
random_05.txt AC 29 ms 9240 KiB
random_06.txt AC 22 ms 9136 KiB
random_07.txt AC 22 ms 9080 KiB
random_08.txt AC 23 ms 9228 KiB
random_09.txt AC 21 ms 9124 KiB
random_10.txt AC 28 ms 9304 KiB
random_11.txt AC 21 ms 9216 KiB
random_12.txt AC 21 ms 9212 KiB
random_13.txt AC 24 ms 9312 KiB
random_14.txt AC 22 ms 9212 KiB
random_15.txt AC 20 ms 9040 KiB
random_16.txt AC 24 ms 9196 KiB
random_17.txt AC 27 ms 9332 KiB
random_18.txt AC 19 ms 9120 KiB
random_19.txt AC 24 ms 9256 KiB
random_20.txt AC 20 ms 9124 KiB
sample_01.txt AC 20 ms 8988 KiB
sample_02.txt AC 18 ms 9236 KiB
sample_03.txt AC 21 ms 9112 KiB
sample_04.txt AC 17 ms 9168 KiB
sample_05.txt AC 21 ms 9188 KiB