Submission #1159908

#TimeUsernameProblemLanguageResultExecution timeMemory
1159908madshoffDrivers (BOI24_drivers)Pypy 3
0 / 100
135 ms48808 KiB
from heapq import* n,m,u = list(map(int,input().split())) cities = [(_,-1) for _ in range(n)] groups = [[_] for _ in range(n)] roads = [] for i in range(m): x,y,t = list(map(int,input().split())) roads.append((t,x-1,y-1)) roads.sort() roads.append((10**9+7,x-1,y-1)) roads.reverse() #print("roads:",roads) #print("citites:",cities) queries = [] for q in range(u): a,b,t = list(map(int,input().split())) queries.append((t,a-1,b-1,q)) queries.sort() final = ["NE"]*u last_road = roads.pop() for query in queries: limit = query[0] x = query[1] y = query[2] while last_road[0]<=limit: if cities[y][1] != cities[x][1]: if len(groups[cities[y][1]])>=len(groups[cities[x][1]]): groups[y] = groups[y-1]+groups[x] cities[groups[x][0]] = (groups[x][0],groups[y][0]) else: groups[x] = groups[x]+groups[y] cities[groups[y][0]] = (groups[y][0],groups[x][0]) elif cities[y][1]==-1: groups[y] = groups[y]+groups[x] cities[groups[x][0]] = (groups[x][0],groups[y][0]) cities[y] = (y,y) last_road= roads.pop() if cities[x][1] == cities[y][1] and cities[x][1]!=-1: final[query[3]] = "TAIP" #print(adj) #print(groups) #print(cities) print("\n".join(final)) #for road in adj: # a = adj

Compilation message (stdout)

Compiling 'Main.py'...

=======
  adding: __main__.pyc (deflated 43%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...