Submission #64787007


Source Code Expand

Copy
from collections import defaultdict
N, M = map(int, input().split())
graph = {}
for i in range(N):
graph[i] = []
for i in range(M):
a, b = map(int, input().split())
graph[a-1].append(b-1)
graph[b-1].append(a-1)
flags = [0] * N
answer = [0] * N
chouten = 0
decreaseChotenPrepare = [0] * N
for i in range(N-1,0,-1):
if len(graph[i]) > 0:
chouten += 1
for j in graph[i]:
flags[j] += 1
if flags[j] == len(graph[j]):
if j > i:
chouten -= 1
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
from collections import defaultdict
N, M = map(int, input().split())
graph = {}
for i in range(N):
    graph[i] = []
for i in range(M):
    a, b = map(int, input().split())
    graph[a-1].append(b-1)
    graph[b-1].append(a-1)
flags = [0] * N
answer = [0] * N
chouten = 0
decreaseChotenPrepare = [0] * N
for i in range(N-1,0,-1):
    if len(graph[i]) > 0:
        chouten += 1
    for j in graph[i]:
        flags[j] += 1
        if flags[j] == len(graph[j]):
            if j > i:
                chouten -= 1
            else:
                decreaseChotenPrepare[j] += 1
    chouten -= decreaseChotenPrepare[i]
    answer[i-1] = chouten

class UnionFind():
    def __init__(self, n):
        self.n = n
        self.parents = [-1] * n

    def find(self, x):
        if self.parents[x] < 0:
            return x
        else:
            self.parents[x] = self.find(self.parents[x])
            return self.parents[x]

    def union(self, x, y):
        x = self.find(x)
        y = self.find(y)

        if x == y:
            return

        if self.parents[x] > self.parents[y]:
            x, y = y, x

        self.parents[x] += self.parents[y]
        self.parents[y] = x

    def size(self, x):
        return -self.parents[self.find(x)]

    def same(self, x, y):
        return self.find(x) == self.find(y)

    def members(self, x):
        root = self.find(x)
        return [i for i in range(self.n) if self.find(i) == root]

    def roots(self):
        return [i for i, x in enumerate(self.parents) if x < 0]

    def group_count(self):
        return len(self.roots())

    def all_group_members(self):
        group_members = defaultdict(list)
        for member in range(self.n):
            group_members[self.find(member)].append(member)
        return group_members

    def __str__(self):
        return '\n'.join(f'{r}: {m}' for r, m in self.all_group_members().items())

uf = UnionFind(N)

for i in range(N):
    for j in graph[i]:
        if j < i:
            uf.union(i, j)
    if uf.size(0) != i+1:
        answer[i] = -1
print(*answer)

Submission Info

Submission Time
Task E - Reachable Set
User kangping
Language Python (CPython 3.11.4)
Score 450
Code Size 2151 Byte
Status AC
Exec Time 1347 ms
Memory 81892 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 4
AC × 49
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 12 ms 9504 KiB
00_sample_01.txt AC 12 ms 9464 KiB
00_sample_02.txt AC 11 ms 9496 KiB
00_sample_03.txt AC 12 ms 9504 KiB
01_random_04.txt AC 873 ms 66764 KiB
01_random_05.txt AC 700 ms 68148 KiB
01_random_06.txt AC 918 ms 72896 KiB
01_random_07.txt AC 833 ms 71864 KiB
01_random_08.txt AC 1347 ms 79556 KiB
01_random_09.txt AC 1188 ms 80868 KiB
01_random_10.txt AC 1314 ms 80044 KiB
01_random_11.txt AC 1253 ms 81892 KiB
01_random_12.txt AC 1308 ms 79984 KiB
01_random_13.txt AC 1282 ms 80024 KiB
01_random_14.txt AC 1294 ms 79968 KiB
01_random_15.txt AC 625 ms 32708 KiB
01_random_16.txt AC 204 ms 34252 KiB
01_random_17.txt AC 203 ms 45444 KiB
01_random_18.txt AC 40 ms 14724 KiB
01_random_19.txt AC 42 ms 15104 KiB
01_random_20.txt AC 394 ms 20648 KiB
01_random_21.txt AC 248 ms 15840 KiB
01_random_22.txt AC 64 ms 10304 KiB
01_random_23.txt AC 515 ms 25612 KiB
01_random_24.txt AC 497 ms 25420 KiB
01_random_25.txt AC 276 ms 17660 KiB
01_random_26.txt AC 1254 ms 80804 KiB
01_random_27.txt AC 1236 ms 80084 KiB
01_random_28.txt AC 1191 ms 81812 KiB
01_random_29.txt AC 1262 ms 80320 KiB
01_random_30.txt AC 1236 ms 80820 KiB
01_random_31.txt AC 1280 ms 80080 KiB
01_random_32.txt AC 1206 ms 81816 KiB
01_random_33.txt AC 1231 ms 80232 KiB
01_random_34.txt AC 1245 ms 80812 KiB
01_random_35.txt AC 1181 ms 80048 KiB
01_random_36.txt AC 1219 ms 81872 KiB
01_random_37.txt AC 1222 ms 80404 KiB
01_random_38.txt AC 12 ms 9508 KiB
01_random_39.txt AC 11 ms 9484 KiB
01_random_40.txt AC 12 ms 9528 KiB
01_random_41.txt AC 11 ms 9428 KiB
01_random_42.txt AC 11 ms 9492 KiB
01_random_43.txt AC 11 ms 9488 KiB
01_random_44.txt AC 11 ms 9504 KiB
01_random_45.txt AC 11 ms 9500 KiB
01_random_46.txt AC 11 ms 9496 KiB
01_random_47.txt AC 11 ms 9432 KiB
01_random_48.txt AC 11 ms 9428 KiB


2025-07-09 (Wed)
03:04:11 +09:00