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 |