Submission #4636822
Source Code Expand
from operator import itemgetter n, m = map(int, input().split()) aby = [[int(i) for i in input().split()] for _ in range(m)] q = int(input()) vw = [[int(i) for i in input().split()] + [j] for j in range(q)] aby.sort(key=itemgetter(2), reverse=True) vw.sort(key=itemgetter(1), reverse=True) class UnionFind: def __init__(self, size): self.rank = [-1 for _ in range(size)] self.number = [1 for _ in range(size)] def find(self, x): while self.rank[x] >= 0: x = self.rank[x] return x def size(self, x): return self.number[self.find(x)] def union(self, s1, s2): if s1 == s2: return if self.rank[s1] == self.rank[s2]: self.rank[s1] -= 1 self.rank[s2] = s1 self.number[s1] += self.number[s2] elif self.rank[s1] < self.rank[s2]: self.rank[s2] = s1 self.number[s1] += self.number[s2] else: self.rank[s1] = s2 self.number[s2] += self.number[s1] uft = UnionFind(n) ans = [0] * q t = 0 for v, w, j in vw: for i in range(t, m): a, b, y = aby[i] if y <= w: t = i break if uft.find(a-1) != uft.find(b-1): uft.union(uft.find(a-1), uft.find(b-1)) else: t = m ans[j] = uft.size(v-1) for i in range(q): print(ans[i])
Submission Info
Submission Time | |
---|---|
Task | D - 道路の老朽化対策について |
User | koga |
Language | Python (3.4.3) |
Score | 100 |
Code Size | 1446 Byte |
Status | AC |
Exec Time | 1998 ms |
Memory | 70332 KB |
Judge Result
Set Name | Sample | Subtask1 | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 50 / 50 | 50 / 50 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 18 ms | 3188 KB |
sample_02.txt | AC | 18 ms | 3188 KB |
sample_03.txt | AC | 18 ms | 3188 KB |
subtask1_01.txt | AC | 34 ms | 3692 KB |
subtask1_02.txt | AC | 35 ms | 3828 KB |
subtask1_03.txt | AC | 35 ms | 3828 KB |
subtask1_04.txt | AC | 29 ms | 3572 KB |
subtask1_05.txt | AC | 33 ms | 3692 KB |
subtask1_06.txt | AC | 34 ms | 3820 KB |
subtask1_07.txt | AC | 34 ms | 3828 KB |
subtask2_01.txt | AC | 1859 ms | 67416 KB |
subtask2_02.txt | AC | 1971 ms | 69800 KB |
subtask2_03.txt | AC | 1993 ms | 70284 KB |
subtask2_04.txt | AC | 1998 ms | 70332 KB |
subtask2_05.txt | AC | 1099 ms | 44796 KB |
subtask2_06.txt | AC | 1786 ms | 60596 KB |
subtask2_07.txt | AC | 1912 ms | 63936 KB |
subtask2_08.txt | AC | 1878 ms | 64216 KB |
subtask2_09.txt | AC | 1978 ms | 70268 KB |
subtask2_10.txt | AC | 1991 ms | 70220 KB |
subtask2_11.txt | AC | 1967 ms | 70116 KB |
subtask2_12.txt | AC | 1782 ms | 69600 KB |