Submission #67345111


Source Code Expand

Copy
from collections import defaultdict
class dsu():
n = 1
parent_or_size = []
def __init__(self, N):
self.n = N
self.parent_or_size = [-1 for _ in range(N)]
def merge(self, a, b):
assert 0 <= a < self.n and 0 <= b < self.n
x = self.leader(a)
y = self.leader(b)
if x == y:
return x
if -self.parent_or_size[x] < -self.parent_or_size[y]:
x, y = y, x
self.parent_or_size[x] += self.parent_or_size[y]
self.parent_or_size[y] = x
return x
def same(self, a, b):
return self.leader(a) == self.leader(b)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
from collections import defaultdict

class dsu():
    n = 1
    parent_or_size = []
    def __init__(self, N):
        self.n = N
        self.parent_or_size = [-1 for _ in range(N)]
    def merge(self, a, b):
        assert 0 <= a < self.n and 0 <= b < self.n
        x = self.leader(a)
        y = self.leader(b)
        if x == y:
            return x
        if -self.parent_or_size[x] < -self.parent_or_size[y]:
            x, y = y, x
        self.parent_or_size[x] += self.parent_or_size[y]
        self.parent_or_size[y] = x
        return x
    def same(self, a, b):
        return self.leader(a) == self.leader(b)
    def leader(self, a):
        if self.parent_or_size[a] < 0:
            return a
        self.parent_or_size[a] = self.leader(self.parent_or_size[a])
        return self.parent_or_size[a]
    def size(self, a):
        return -self.parent_or_size[self.leader(a)]
    def groups(self):
        leader_buf = [self.leader(i) for i in range(self.n)]
        groups = defaultdict(list)
        for i, p in enumerate(leader_buf):
            groups[p].append(i)
        return list(groups.values())

H,W,K=map(int, input().split())
A=[tuple(map(int, input().split())) for _ in range(K)]

uf=dsu(K)

rmin=[r for r, c in A]
rmax=[r for r, c in A]
cmin=[c for r, c in A]
cmax=[c for r, c in A]

idx={A[i]: i for i in range(K)}

dirs=[(-1,0),(1,0),(0,-1),(0,1),(-1,-1),(-1,1),(1,-1),(1,1)]
for i,(r, c) in enumerate(A):
    for dr,dc in dirs:
        nbr = (r + dr, c + dc)
        if nbr in idx:
            j=idx[nbr]
            ri=uf.leader(i)
            rj=uf.leader(j)
            
            if ri!=rj:
                new=uf.merge(ri, rj)
                pre1,pre2=(rmin[ri], rmax[ri], cmin[ri], cmax[ri]), (rmin[rj], rmax[rj], cmin[rj], cmax[rj])
                
                rmin[new] = min(pre1[0],pre2[0])
                rmax[new] = max(pre1[1],pre2[1])
                cmin[new] = min(pre1[2],pre2[2])
                cmax[new] = max(pre1[3],pre2[3])


for i in range(K):
    if uf.leader(i)!=i:
        continue

    if cmin[i] == 1 and cmax[i] == W:
        print("No")
        break
    if rmin[i] == 1 and rmax[i] == H:
        print("No")
        break
else:
    print("Yes")

Submission Info

Submission Time
Task G - Big Banned Grid
User kotafuku
Language Python (PyPy 3.10-v7.3.12)
Score 0
Code Size 2299 Byte
Status WA
Exec Time 680 ms
Memory 135432 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 575
Status
AC × 4
AC × 43
WA × 2
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
Case Name Status Exec Time Memory
00_sample_00.txt AC 68 ms 76912 KiB
00_sample_01.txt AC 69 ms 76872 KiB
00_sample_02.txt AC 69 ms 76672 KiB
00_sample_03.txt AC 69 ms 76736 KiB
01_random_04.txt AC 332 ms 134544 KiB
01_random_05.txt AC 330 ms 134864 KiB
01_random_06.txt AC 326 ms 134620 KiB
01_random_07.txt AC 338 ms 133792 KiB
01_random_08.txt AC 328 ms 134544 KiB
01_random_09.txt AC 332 ms 134944 KiB
01_random_10.txt AC 175 ms 108812 KiB
01_random_11.txt AC 134 ms 94468 KiB
01_random_12.txt AC 327 ms 132244 KiB
01_random_13.txt AC 193 ms 110328 KiB
01_random_14.txt AC 274 ms 124404 KiB
01_random_15.txt AC 297 ms 127544 KiB
01_random_16.txt AC 325 ms 101864 KiB
01_random_17.txt AC 212 ms 101872 KiB
01_random_18.txt AC 591 ms 114432 KiB
01_random_19.txt AC 569 ms 116324 KiB
01_random_20.txt AC 213 ms 90196 KiB
01_random_21.txt AC 199 ms 94008 KiB
01_random_22.txt AC 612 ms 134928 KiB
01_random_23.txt AC 639 ms 135248 KiB
01_random_24.txt AC 574 ms 134912 KiB
01_random_25.txt AC 652 ms 135432 KiB
01_random_26.txt AC 680 ms 134924 KiB
01_random_27.txt AC 646 ms 134940 KiB
01_random_28.txt AC 351 ms 109740 KiB
01_random_29.txt AC 414 ms 113920 KiB
01_random_30.txt AC 366 ms 114676 KiB
01_random_31.txt AC 584 ms 130328 KiB
01_random_32.txt AC 140 ms 87284 KiB
01_random_33.txt AC 510 ms 126048 KiB
01_random_34.txt AC 204 ms 94080 KiB
01_random_35.txt AC 492 ms 114736 KiB
01_random_36.txt AC 360 ms 100784 KiB
01_random_37.txt AC 645 ms 122656 KiB
01_random_38.txt AC 443 ms 111360 KiB
01_random_39.txt AC 107 ms 84960 KiB
01_random_40.txt AC 68 ms 76788 KiB
01_random_41.txt AC 68 ms 76852 KiB
01_random_42.txt AC 68 ms 76932 KiB
01_random_43.txt WA 68 ms 76648 KiB
01_random_44.txt WA 69 ms 76744 KiB


2025-07-06 (Sun)
00:13:46 +09:00