Task: | Laskettelukeskus |
Sender: | Masemiliano |
Submission time: | 2023-11-02 17:26:23 +0200 |
Language: | Python3 (CPython3) |
Status: | READY |
Result: | 53 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 53 |
#2 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.02 s | 1, 2 | details |
#2 | ACCEPTED | 0.16 s | 1, 2 | details |
#3 | ACCEPTED | 0.17 s | 1, 2 | details |
#4 | TIME LIMIT EXCEEDED | -- | 2 | details |
#5 | TIME LIMIT EXCEEDED | -- | 2 | details |
#6 | ACCEPTED | 0.02 s | 1, 2 | details |
#7 | ACCEPTED | 0.33 s | 2 | details |
#8 | ACCEPTED | 0.03 s | 1, 2 | details |
#9 | TIME LIMIT EXCEEDED | -- | 2 | details |
#10 | ACCEPTED | 0.17 s | 1, 2 | details |
#11 | TIME LIMIT EXCEEDED | -- | 2 | details |
#12 | ACCEPTED | 0.27 s | 1, 2 | details |
#13 | TIME LIMIT EXCEEDED | -- | 2 | details |
Code
slopes = int(input())# slopes = 5roads = [ [] for _ in range(slopes)]for n in range(1, slopes):road = input()from_, to_ = road.split()roads[int(from_) - 1].append(int(to_))"""roaf = ["1 2", "1 3", "3 4", "3 5"]for road in roaf:from_, to_ = road.split()roads[int(from_) - 1].append(int(to_))"""plowes = [int(g) for g in input().split()]# plowes = [int(g) for g in "0 2 4 3 1".split()]def pathfinding():start = 1positions_next = []paths = []for v in roads[start - 1]:plus = 0if plowes[0] > 0:plus += 1if plowes[v - 1] > 0:plus += 1positions_next.append([plus, 1, v])while True:# print(positions_next)positions_next_new = []for p in positions_next:# print(roads[p[-1] - 1])if roads[p[-1] - 1]:for p2 in roads[p[-1] - 1]:new = p.copy()new.append(p2)if plowes[p2 - 1] > 0:new[0] += 1positions_next_new.append(new)else:paths.append(p)positions_next = positions_next_new.copy()if not positions_next:breakbig_ass = 0what = []for ph in paths:if ph[0] > big_ass:what = phbig_ass = ph[0]if what:return what# print(what)times = 0while not (plowes[0] == 0 and len(set(plowes)) <= 1):taken_path = pathfinding()taken_path.pop(0)for t in taken_path:if plowes[t - 1] > 0:plowes[t - 1] -= 1times += 1print(times)
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
5 1 2 1 3 3 4 3 5 ... |
correct output |
---|
6 |
user output |
---|
6 |
Test 2
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 1 73 1 64 64 23 1 88 ... |
correct output |
---|
2675 |
user output |
---|
2675 |
Test 3
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 1 36 36 56 56 59 36 97 ... |
correct output |
---|
2808 |
user output |
---|
2808 |
Test 4
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1 45452 1 74209 45452 78960 45452 79820 ... |
correct output |
---|
28399367694319 |
user output |
---|
(empty) |
Test 5
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1 31165 1 23263 31165 89516 31165 53122 ... |
correct output |
---|
28546840313799 |
user output |
---|
(empty) |
Test 6
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 1 79 79 9 79 45 45 10 ... |
correct output |
---|
0 |
user output |
---|
0 |
Test 7
Group: 2
Verdict: ACCEPTED
input |
---|
100000 1 66038 1 56789 56789 7403 66038 69542 ... |
correct output |
---|
0 |
user output |
---|
0 |
Test 8
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 1 2 2 3 3 4 4 5 ... |
correct output |
---|
100 |
user output |
---|
100 |
Test 9
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1 2 2 3 3 4 4 5 ... |
correct output |
---|
1000000000 |
user output |
---|
(empty) |
Test 10
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 1 2 1 3 2 4 2 5 ... |
correct output |
---|
2809 |
user output |
---|
2809 |
Test 11
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1 2 1 3 2 4 2 5 ... |
correct output |
---|
26053917212428 |
user output |
---|
(empty) |
Test 12
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 1 2 1 3 2 4 2 5 ... |
correct output |
---|
5000 |
user output |
---|
5000 |
Test 13
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1 2 1 3 2 4 2 5 ... |
correct output |
---|
50000000000000 |
user output |
---|
(empty) |