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
AC × 3
AC × 10
AC × 22
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