3213 2023. 02. 22 17:06:12 12Boti Múzeumi őrök python3 Hibás válasz 27/40 684ms 31220 KiB
import heapq
from bisect import bisect

n, e, u = map(int, input().split())
os = [list(map(int, input().split())) + [idx] for idx in range(n)]
os.sort()
done = [False] * n
parent = [-1] * n

heap = [(cost, end, idx) for idx, (start, end, cost, _) in enumerate(os) if start == e]
heapq.heapify(heap)

while len(heap) > 0:
    # print(heap)
    # print(parent)
    cost, end, idx = heapq.heappop(heap)
    if done[idx]:
        continue
    done[idx] = True
    if end >= u:
        print(cost)
        l = []
        while idx != -1:
            l.append(os[idx][3] + 1)
            # print(os[idx])
            idx = parent[idx]
        l.reverse()
        print(len(l), *l)
        exit()
    for i in range(idx + 1, n):
        if os[i][0] > end + 1:
            break
        if done[i] or parent[i] != -1:
            continue
        parent[i] = idx
        heapq.heappush(heap, (cost + os[i][2], os[i][1], i))
Részfeladat Összpont Teszt Verdikt Idő Memória
base 27/40
1 Elfogadva 0/0 19ms 11716 KiB
2 Elfogadva 0/0 148ms 17432 KiB
3 Hibás válasz 0/1 18ms 11956 KiB
4 Elfogadva 3/3 18ms 12252 KiB
5 Elfogadva 2/2 17ms 12472 KiB
6 Elfogadva 2/2 19ms 12812 KiB
7 Elfogadva 2/2 18ms 13044 KiB
8 Elfogadva 2/2 18ms 13244 KiB
9 Elfogadva 2/2 18ms 13468 KiB
10 Időlimit túllépés 0/2 676ms 30376 KiB
11 Időlimit túllépés 0/2 679ms 30548 KiB
12 Elfogadva 2/2 20ms 13784 KiB
13 Elfogadva 2/2 79ms 15680 KiB
14 Részben helyes 1/3 104ms 18344 KiB
15 Elfogadva 3/3 126ms 19692 KiB
16 Időlimit túllépés 0/2 661ms 30900 KiB
17 Időlimit túllépés 0/2 684ms 31220 KiB
18 Részben helyes 1/2 18ms 14144 KiB
19 Részben helyes 1/2 18ms 14312 KiB
20 Elfogadva 2/2 17ms 14644 KiB
21 Elfogadva 2/2 17ms 14360 KiB