| Task: | Sadonkorjuu |
| Sender: | Finnduino |
| Submission time: | 2022-11-06 22:01:58 +0200 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.04 s | 1, 2 | details |
| #2 | WRONG ANSWER | 0.05 s | 1, 2 | details |
| #3 | WRONG ANSWER | 0.04 s | 1, 2 | details |
| #4 | WRONG ANSWER | 0.04 s | 1, 2 | details |
| #5 | WRONG ANSWER | 0.04 s | 1, 2 | details |
| #6 | WRONG ANSWER | 0.08 s | 1, 2 | details |
| #7 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #8 | WRONG ANSWER | 0.11 s | 1, 2 | details |
| #9 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #10 | WRONG ANSWER | 0.08 s | 1, 2 | details |
| #11 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #12 | WRONG ANSWER | 0.73 s | 2 | details |
| #13 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #14 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #15 | WRONG ANSWER | 0.09 s | 1, 2 | details |
| #16 | WRONG ANSWER | 0.10 s | 1, 2 | details |
| #17 | WRONG ANSWER | 0.08 s | 1, 2 | details |
| #18 | WRONG ANSWER | 0.12 s | 1, 2 | details |
| #19 | WRONG ANSWER | 0.08 s | 1, 2 | details |
| #20 | WRONG ANSWER | 0.10 s | 1, 2 | details |
| #21 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #22 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #23 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #24 | WRONG ANSWER | 0.18 s | 1, 2 | details |
| #25 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #26 | WRONG ANSWER | 0.18 s | 1, 2 | details |
| #27 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #28 | WRONG ANSWER | 0.08 s | 1, 2 | details |
| #29 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #30 | WRONG ANSWER | 0.09 s | 1, 2 | details |
| #31 | TIME LIMIT EXCEEDED | -- | 2 | details |
Code
#import math
#import numpy
import sys, math
import datetime
CityCount = int(input())
start_time = datetime.datetime.now()
CityStates = input().split()
RoadList = []
RoadDict = {}
[RoadDict.setdefault(x, []) for x in range(0, CityCount)]
#dict.fromkeys(range(0, CityCount), [])
#Build a nested array of roads
Ports = []
for n in range(0,CityCount-1):
temp = [int(i) for i in sys.stdin.readline().split()]
RoadDict[temp[0]-1].append([temp[1]-1,temp[2]])
RoadDict[temp[1]-1].append([temp[0]-1, temp[2]])
RoadList.append(temp)
if CityStates[temp[0]-1] == "0":
Ports.append(temp[0]-1)
if CityStates[temp[1]-1] == "0":
Ports.append(temp[1]-1)
#Convert to numpy array
#RoadMatrix = numpy.array(RoadList)
#Cycle through roads to find ones that connect to a given node, then build a dictionary which indexes each connected road
#for a in range(0,CityCount):
# tempList = RoadDict[a]
# for b in range(0, len(tempList)):
# tempList.sort(key= lambda x: x[1])
# RoadDict[a] = tempList
#Actually find something
currentNode = 0
nodeDistances = [0]+[math.inf]*(CityCount-1)
totalDistances = 0
unvisited_nodes = [x for x in range(CityCount)]
#shortest_path = {}
#previous_nodes = {}
#start_node = 0
def connection(node, target):
node = node
target = target
for con in RoadDict[node]:
if(int(con[0]) == target):
return int(con[1])
return 0
class Node():
def __init__(self, nodeVal) -> None:
self.value = nodeVal
#self.root = None
self.distance = math.inf
#def setParent(self, root):
# self.root = root
def addDistance(self, distance):
if(distance < self.distance):
self.distance = distance
#Initialize nodes:
NodeList = []
for i in range(0, CityCount):
NodeList.append(Node(i))
if not int(CityStates[i]):
NodeList[i].addDistance(0)
PortNodes = []
for i in range(0, len(Ports)):
PortNodes.append(NodeList[Ports[i]])
bingus=[]
sum = 0
for startingNode in PortNodes:
#treeList = []
node = startingNode
startingNodevalue = startingNode.value
travelledNodes = [False]*CityCount
#nodeIterator = 0
Queue = []
Queue.append(startingNode)
travelledNodes[startingNodevalue] = True
while Queue:
node = Queue[0]
Queue.pop(0)
nodeValue = node.value
for neighbor in RoadDict[nodeValue]:
neighborNode = NodeList[neighbor[0]]
if(CityStates[neighbor[0]] == "0"):
travelledNodes[neighbor[0]] = True
elif(not travelledNodes[neighbor[0]]):
# neighborNode.setParent(node)
travelledNodes[neighbor[0]] = True
Queue.append(neighborNode)
# neighborNode.setParent(node)
neighborNode.addDistance(connection(nodeValue, neighborNode.value)+node.distance)
for node in NodeList:
sum += node.distance
print(sum)
print(datetime.datetime.now() - start_time)Test details
Test 1
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1 0 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 0:00:00.000312 |
Test 2
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 5 0 0 0 0 0 1 2 1 2 3 2 3 4 3 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 0:00:00.000437 |
Test 3
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 4 1 0 1 1 1 2 10 2 3 20 2 4 30 |
| correct output |
|---|
| 60 |
| user output |
|---|
| 60 0:00:00.000431 |
Test 4
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 5 0 1 1 1 0 1 2 10 2 3 20 3 4 30 ... |
| correct output |
|---|
| 80 |
| user output |
|---|
| 80 0:00:00.000441 |
Test 5
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 5 0 1 0 1 1 1 2 1 2 3 5 3 4 3 ... |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 0:00:00.000470 |
Test 6
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 5506363 |
| user output |
|---|
| 5506363 0:00:00.030997 |
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: WRONG ANSWER
| input |
|---|
| 1000 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 ... |
| correct output |
|---|
| 293576 |
| user output |
|---|
| 293576 0:00:00.065139 |
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: WRONG ANSWER
| input |
|---|
| 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| correct output |
|---|
| 3089 |
| user output |
|---|
| 3089 0:00:00.031761 |
Test 11
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| correct output |
|---|
| 40839 |
| user output |
|---|
| (empty) |
Test 12
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 5683983203973 |
| user output |
|---|
| 5683983203973 0:00:00.672524 |
Test 13
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 ... |
| correct output |
|---|
| 58572993 |
| user output |
|---|
| (empty) |
Test 14
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| correct output |
|---|
| 32755 |
| user output |
|---|
| (empty) |
Test 15
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 126238345 |
| user output |
|---|
| 126238345 0:00:00.042472 |
Test 16
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 ... |
| correct output |
|---|
| 278678 |
| user output |
|---|
| 278678 0:00:00.050415 |
Test 17
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ... |
| correct output |
|---|
| 34929 |
| user output |
|---|
| 34929 0:00:00.036952 |
Test 18
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 1543963 |
| user output |
|---|
| 1543963 0:00:00.075107 |
Test 19
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| correct output |
|---|
| 39606 |
| user output |
|---|
| 39606 0:00:00.037886 |
Test 20
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 ... |
| correct output |
|---|
| 321598 |
| user output |
|---|
| 321598 0:00:00.050359 |
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: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| correct output |
|---|
| 375218 |
| user output |
|---|
| (empty) |
Test 23
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 ... |
| correct output |
|---|
| 60422556 |
| user output |
|---|
| (empty) |
Test 24
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 291990 |
| user output |
|---|
| 291990 0:00:00.139140 |
Test 25
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 |
|---|
| 59607954 |
| user output |
|---|
| (empty) |
Test 26
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 990 |
| user output |
|---|
| 990 0:00:00.135103 |
Test 27
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 |
|---|
| 199982 |
| user output |
|---|
| (empty) |
Test 28
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 7987 |
| user output |
|---|
| 7987 0:00:00.039494 |
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: WRONG ANSWER
| input |
|---|
| 1000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 4657693 |
| user output |
|---|
| 4657693 0:00:00.039818 |
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) |
