Task: | Laskettelukeskus |
Sender: | Masemiliano |
Submission time: | 2023-11-02 17:23:31 +0200 |
Language: | Python3 (CPython3) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#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 | WRONG ANSWER | 0.02 s | 1, 2 | details |
#9 | WRONG ANSWER | 0.32 s | 2 | details |
#10 | ACCEPTED | 0.17 s | 1, 2 | details |
#11 | TIME LIMIT EXCEEDED | -- | 2 | details |
#12 | WRONG ANSWER | 0.02 s | 1, 2 | details |
#13 | WRONG ANSWER | 0.31 s | 2 | details |
Code
slopes = int(input()) # slopes = 5 roads = [ [] 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 = 1 positions_next = [] paths = [] for v in roads[start - 1]: plus = 0 if plowes[0] > 0: plus += 1 if plowes[v - 1] > 0: plus += 1 positions_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] += 1 positions_next_new.append(new) else: paths.append(p) positions_next = positions_next_new.copy() if not positions_next: break big_ass = 0 what = [] for ph in paths: if ph[0] > big_ass: what = ph big_ass = ph[0] if what: return what # print(what) times = 0 while len(set(plowes)) > 1: taken_path = pathfinding() taken_path.pop(0) for t in taken_path: if plowes[t - 1] > 0: plowes[t - 1] -= 1 times += 1 print(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: WRONG ANSWER
input |
---|
100 1 2 2 3 3 4 4 5 ... |
correct output |
---|
100 |
user output |
---|
0 |
Test 9
Group: 2
Verdict: WRONG ANSWER
input |
---|
100000 1 2 2 3 3 4 4 5 ... |
correct output |
---|
1000000000 |
user output |
---|
0 |
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: WRONG ANSWER
input |
---|
100 1 2 1 3 2 4 2 5 ... |
correct output |
---|
5000 |
user output |
---|
0 |
Test 13
Group: 2
Verdict: WRONG ANSWER
input |
---|
100000 1 2 1 3 2 4 2 5 ... |
correct output |
---|
50000000000000 |
user output |
---|
0 |