Task: | Connect cities |
Sender: | TrixterTheTux |
Submission time: | 2024-09-10 14:41:07 +0300 |
Language: | Python3 (CPython3) |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.02 s | details |
#2 | WRONG ANSWER | 0.02 s | details |
#3 | WRONG ANSWER | 0.02 s | details |
#4 | ACCEPTED | 0.02 s | details |
#5 | WRONG ANSWER | 0.02 s | details |
#6 | WRONG ANSWER | 0.85 s | details |
#7 | WRONG ANSWER | 0.85 s | details |
#8 | WRONG ANSWER | 0.85 s | details |
#9 | WRONG ANSWER | 0.85 s | details |
#10 | WRONG ANSWER | 0.86 s | details |
#11 | WRONG ANSWER | 0.26 s | details |
#12 | WRONG ANSWER | 0.02 s | details |
Code
class UnionFind: def __init__(self, n): self.parent = list(range(n)) self.size = [0] * n def find(self, x): while x != self.parent[x]: x = self.parent[x] return x def unite(self, a, b): a = self.find(a) b = self.find(b) if a == b: return if self.size[a] > self.size[b]: self.parent[b] = a elif self.size[b] > self.size[a]: self.parent[a] = b else: self.parent[b] = a self.size[a] += 1 n, m = map(int, input().split()) roads = [tuple(map(int, input().split())) for _ in range(m)] uf = UnionFind(n) for road_a, road_b in roads: uf.unite(road_a - 1, road_b - 1) cities_in_chunk = {} for city in range(n): chunk = uf.find(city) if chunk not in cities_in_chunk: cities_in_chunk[chunk] = [] cities_in_chunk[chunk].append(city) chunks = list(cities_in_chunk.keys()) for i in range(1, len(chunks)): print(cities_in_chunk[chunks[i - 1]][0] + 1, cities_in_chunk[chunks[i]][0] + 1)
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
10 10 2 5 5 6 1 4 6 8 ... |
correct output |
---|
2 1 2 2 7 |
user output |
---|
1 2 2 7 |
Test 2
Verdict: WRONG ANSWER
input |
---|
10 10 3 9 6 8 9 10 7 8 ... |
correct output |
---|
2 1 4 4 5 |
user output |
---|
1 4 4 5 |
Test 3
Verdict: WRONG ANSWER
input |
---|
10 10 7 9 1 7 1 3 3 4 ... |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 4
Verdict: ACCEPTED
input |
---|
10 10 4 8 5 9 4 9 2 7 ... |
correct output |
---|
1 1 3 |
user output |
---|
1 3 |
Test 5
Verdict: WRONG ANSWER
input |
---|
10 10 4 9 2 4 7 10 1 8 ... |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 6
Verdict: WRONG ANSWER
input |
---|
100000 200000 7233 22146 94937 96203 6133 10731 98737 99193 ... |
correct output |
---|
4785 1 2 2 3 3 4 4 5 ... |
user output |
---|
1 2 2 3 3 4 4 5 5 11 ... Truncated |
Test 7
Verdict: WRONG ANSWER
input |
---|
100000 200000 92950 93575 24401 88897 41796 99364 47106 50330 ... |
correct output |
---|
4868 1 2 2 7 7 9 9 15 ... |
user output |
---|
1 2 2 7 7 9 9 15 15 16 ... Truncated |
Test 8
Verdict: WRONG ANSWER
input |
---|
100000 200000 15637 76736 79169 98809 4382 86557 73383 77029 ... |
correct output |
---|
4683 1 9 9 20 20 27 27 28 ... |
user output |
---|
1 9 9 20 20 27 27 28 28 33 ... Truncated |
Test 9
Verdict: WRONG ANSWER
input |
---|
100000 200000 47932 66981 86401 99942 4353 27841 60492 67345 ... |
correct output |
---|
4807 1 6 6 7 7 11 11 12 ... |
user output |
---|
1 6 6 7 7 11 11 12 12 30 ... Truncated |
Test 10
Verdict: WRONG ANSWER
input |
---|
100000 200000 6554 44548 76413 98555 5447 59589 70166 74434 ... |
correct output |
---|
4786 1 2 2 18 18 21 21 27 ... |
user output |
---|
1 2 2 18 18 21 21 27 27 28 ... Truncated |
Test 11
Verdict: WRONG ANSWER
input |
---|
100000 1 1 2 |
correct output |
---|
99998 1 3 3 4 4 5 5 6 ... |
user output |
---|
1 3 3 4 4 5 5 6 6 7 ... Truncated |
Test 12
Verdict: WRONG ANSWER
input |
---|
10 9 2 5 5 6 1 4 6 8 ... |
correct output |
---|
2 1 2 2 7 |
user output |
---|
1 2 2 7 |