Task: | Sadonkorjuu |
Sender: | Lordoa |
Submission time: | 2022-11-13 20:15:00 +0200 |
Language: | Python3 (PyPy3) |
Status: | READY |
Result: | 33 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 33 |
#2 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.04 s | 1, 2 | details |
#2 | ACCEPTED | 0.04 s | 1, 2 | details |
#3 | ACCEPTED | 0.04 s | 1, 2 | details |
#4 | ACCEPTED | 0.04 s | 1, 2 | details |
#5 | ACCEPTED | 0.04 s | 1, 2 | details |
#6 | ACCEPTED | 0.09 s | 1, 2 | details |
#7 | TIME LIMIT EXCEEDED | -- | 2 | details |
#8 | ACCEPTED | 0.07 s | 1, 2 | details |
#9 | TIME LIMIT EXCEEDED | -- | 2 | details |
#10 | ACCEPTED | 0.07 s | 1, 2 | details |
#11 | ACCEPTED | 0.31 s | 2 | details |
#12 | RUNTIME ERROR | 0.46 s | 2 | details |
#13 | ACCEPTED | 0.47 s | 2 | details |
#14 | ACCEPTED | 0.30 s | 2 | details |
#15 | ACCEPTED | 0.17 s | 1, 2 | details |
#16 | ACCEPTED | 0.07 s | 1, 2 | details |
#17 | ACCEPTED | 0.07 s | 1, 2 | details |
#18 | ACCEPTED | 0.09 s | 1, 2 | details |
#19 | ACCEPTED | 0.07 s | 1, 2 | details |
#20 | ACCEPTED | 0.07 s | 1, 2 | details |
#21 | TIME LIMIT EXCEEDED | -- | 2 | details |
#22 | ACCEPTED | 0.32 s | 2 | details |
#23 | ACCEPTED | 0.49 s | 2 | details |
#24 | ACCEPTED | 0.09 s | 1, 2 | details |
#25 | ACCEPTED | 0.85 s | 2 | details |
#26 | ACCEPTED | 0.10 s | 1, 2 | details |
#27 | ACCEPTED | 0.86 s | 2 | details |
#28 | ACCEPTED | 0.09 s | 1, 2 | details |
#29 | TIME LIMIT EXCEEDED | -- | 2 | details |
#30 | ACCEPTED | 0.09 s | 1, 2 | details |
#31 | TIME LIMIT EXCEEDED | -- | 2 | details |
Code
n = int(input()) type = [0] + [int(x) for x in input().split()] uwu = {0:[]} gps={0:0} for a in range(n+1): if type[a]==1: uwu[a]=[] gps[a+1]=None for a in range(n-1): rawr = [int(x) for x in input().split()] if type[rawr[0]] == 0 and type[rawr[1]] == 0: continue if type[rawr[0]] == 0: uwu[0].append((rawr[1],rawr[2])) uwu[rawr[1]].append((0,rawr[2])) continue if type[rawr[1]] == 0: uwu[0].append((rawr[0],rawr[2])) uwu[rawr[0]].append((0,rawr[2])) continue uwu[rawr[0]].append((rawr[1],rawr[2])) uwu[rawr[1]].append((rawr[0],rawr[2])) #uwu = {0: [(2, 30), (6, 60), (1, 10)], 1: [(2, 20), (0, 10)], 2: [(1, 20), (0, 30), (5, 50)], 5: [(2, 50)], 6: [(0, 60)]} # Serious move, serious series... Dynamic Programming # Well I have no clue if using a dict is considered dynamic programming... visited = set() def route(city): if gps[city]!=None: return gps[city] visited.add(city) min = None for paths in uwu[city]: if paths[0] in visited: continue if min is not None and min < paths[1]: continue nuzzle = route(paths[0]) if nuzzle is not None: nuzzle += paths[1] if min is None or nuzzle<min: min = nuzzle if len(visited)==1: gps[city] = min visited.remove(city) return min sum = 0 for a in range(n): if type[a+1]==1: visited.clear() wow = route(a+1) sum += wow print(sum) ''' n = int(input()) type = [0] + [int(x) for x in input().split()] uwu = {0:[]} gps={} print(type) for a in range(n+1): if type[a]==1: uwu[a]=[] gps[a]=None print(uwu) for a in range(n-1): rawr = [int(x) for x in input().split()] if type[rawr[0]] == 0 and type[rawr[1]] == 0: continue elif type[rawr[0]] == 0: uwu[0].append((rawr[1],rawr[2])) elif type[rawr[1]] == 0: uwu[0].append((rawr[0],rawr[2])) else: uwu[rawr[0]].append((rawr[1],rawr[2])) uwu[rawr[1]].append((rawr[0],rawr[2])) print(uwu) #uwu = {1: [(2, 20), (4, 10)], 2: [(1, 20), (3, 30), (5, 50)], 3: [(2, 30), (6, 60)], 4: [(1, 10)], 5: [(2, 50)], 6: [(3, 60)]} #uwu = {0: [(2, 30), (6, 60), (1, 10)], 1: [(2, 20)], 2: [(1, 20), (5, 50)], 5: [(2, 50)], 6: []} # Serious move, serious series... Dynamic Programming, maybe for real this time! def route(city, target, dis=0): if gps[city]!=None: return gps[city] min = None for paths in uwu[city]: if paths[0] in uwu[0]: if min is not None and min < paths[1]: continue if paths[0] not in visited: nuzzle = route(paths[0]) if nuzzle is not None: nuzzle += paths[1] if paths[0] not in visited and (nuzzle is not None and (min is None or nuzzle<min)): min = nuzzle if len(visited)==1: gps[city] = min visited.remove(city) return min sum = 0 for a in range(n): if type[a]==1: visited.clear() wow = route(a+1) sum += wow print(sum) '''
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1 0 |
correct output |
---|
0 |
user output |
---|
0 |
Test 2
Group: 1, 2
Verdict: ACCEPTED
input |
---|
5 0 0 0 0 0 1 2 1 2 3 2 3 4 3 ... |
correct output |
---|
0 |
user output |
---|
0 |
Test 3
Group: 1, 2
Verdict: ACCEPTED
input |
---|
4 1 0 1 1 1 2 10 2 3 20 2 4 30 |
correct output |
---|
60 |
user output |
---|
60 |
Test 4
Group: 1, 2
Verdict: ACCEPTED
input |
---|
5 0 1 1 1 0 1 2 10 2 3 20 3 4 30 ... |
correct output |
---|
80 |
user output |
---|
80 |
Test 5
Group: 1, 2
Verdict: ACCEPTED
input |
---|
5 0 1 0 1 1 1 2 1 2 3 5 3 4 3 ... |
correct output |
---|
6 |
user output |
---|
6 |
Test 6
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
5506363 |
user output |
---|
5506363 |
Test 7
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
1795118520 |
user output |
---|
(empty) |
Test 8
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 ... |
correct output |
---|
293576 |
user output |
---|
293576 |
Test 9
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
816932444 |
user output |
---|
(empty) |
Test 10
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
correct output |
---|
3089 |
user output |
---|
3089 |
Test 11
Group: 2
Verdict: ACCEPTED
input |
---|
200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
correct output |
---|
40839 |
user output |
---|
40839 |
Test 12
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
5683983203973 |
user output |
---|
(empty) |
Error:
Traceback (most recent call last): File "input/code.py", line 53, in <module> wow =...
Test 13
Group: 2
Verdict: ACCEPTED
input |
---|
200000 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 ... |
correct output |
---|
58572993 |
user output |
---|
58572993 |
Test 14
Group: 2
Verdict: ACCEPTED
input |
---|
200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
correct output |
---|
32755 |
user output |
---|
32755 |
Test 15
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
126238345 |
user output |
---|
126238345 |
Test 16
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 ... |
correct output |
---|
278678 |
user output |
---|
278678 |
Test 17
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ... |
correct output |
---|
34929 |
user output |
---|
34929 |
Test 18
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
1543963 |
user output |
---|
1543963 |
Test 19
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
correct output |
---|
39606 |
user output |
---|
39606 |
Test 20
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 ... |
correct output |
---|
321598 |
user output |
---|
321598 |
Test 21
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
978670626 |
user output |
---|
(empty) |
Test 22
Group: 2
Verdict: ACCEPTED
input |
---|
200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
correct output |
---|
375218 |
user output |
---|
375218 |
Test 23
Group: 2
Verdict: ACCEPTED
input |
---|
200000 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 ... |
correct output |
---|
60422556 |
user output |
---|
60422556 |
Test 24
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
291990 |
user output |
---|
291990 |
Test 25
Group: 2
Verdict: ACCEPTED
input |
---|
200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
59607954 |
user output |
---|
59607954 |
Test 26
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
990 |
user output |
---|
990 |
Test 27
Group: 2
Verdict: ACCEPTED
input |
---|
200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
199982 |
user output |
---|
199982 |
Test 28
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
7987 |
user output |
---|
7987 |
Test 29
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
3137875 |
user output |
---|
(empty) |
Test 30
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
4657693 |
user output |
---|
4657693 |
Test 31
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
1652889357 |
user output |
---|
(empty) |