Submission #35656907


Source Code Expand

def D(N, XY):
    contain = [[-1] * 20010 for _ in range(2010)]
    for i, (x, y) in enumerate(XY):
        contain[x+1005][y+1005] = i
        
    dsu = [-1] * N
    def leader(i):
        if dsu[i] < 0: return i
        dsu[i] = leader(dsu[i])
        return dsu[i]
    
    def merge(i, j):
        '''サイズの大きい方(x)に小さい方(y)をマージ'''
        if i == j: return
        x = leader(i)
        y = leader(j)
        if x == y: return
        
        if dsu[x] > dsu[y]: x, y = y, x
        
        dsu[x] += dsu[y]
        dsu[y] = x
        
    def get_neighbors(i, j):
        return (
            [i-1,j-1],
            [i-1,j],
            [i,j-1],
            [i,j+1],
            [i+1,j],
            [i+1,j+1],
        )
    
    for i, (x, y) in enumerate(XY):
        for s, t in get_neighbors(x, y):
            idx = contain[s+1005][t+1005]
            if idx > -1:
                merge(i, idx)
                
    return sum(1 for n in dsu if n < 0)
        
# 提出用
N = int(input())
XY = [list(map(int, input().split())) for _ in range(N)]
 
print(D(N, XY))

Submission Info

Submission Time
Task D - Do use hexagon grid
User arakaki_tokyo
Language PyPy3 (7.3.0)
Score 400
Code Size 1153 Byte
Status AC
Exec Time 311 ms
Memory 389120 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 67
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt
Case Name Status Exec Time Memory
sample_01.txt AC 311 ms 378260 KiB
sample_02.txt AC 233 ms 378636 KiB
sample_03.txt AC 230 ms 378384 KiB
test_01.txt AC 230 ms 378464 KiB
test_02.txt AC 228 ms 378312 KiB
test_03.txt AC 250 ms 385432 KiB
test_04.txt AC 256 ms 388184 KiB
test_05.txt AC 249 ms 387004 KiB
test_06.txt AC 246 ms 386424 KiB
test_07.txt AC 257 ms 386640 KiB
test_08.txt AC 231 ms 379944 KiB
test_09.txt AC 231 ms 378356 KiB
test_10.txt AC 248 ms 386260 KiB
test_11.txt AC 249 ms 386276 KiB
test_12.txt AC 249 ms 386072 KiB
test_13.txt AC 262 ms 386736 KiB
test_14.txt AC 260 ms 386232 KiB
test_15.txt AC 260 ms 388220 KiB
test_16.txt AC 251 ms 385540 KiB
test_17.txt AC 251 ms 386548 KiB
test_18.txt AC 246 ms 386048 KiB
test_19.txt AC 262 ms 387276 KiB
test_20.txt AC 256 ms 386708 KiB
test_21.txt AC 231 ms 379836 KiB
test_22.txt AC 248 ms 385716 KiB
test_23.txt AC 244 ms 384888 KiB
test_24.txt AC 249 ms 385712 KiB
test_25.txt AC 241 ms 383172 KiB
test_26.txt AC 240 ms 383832 KiB
test_27.txt AC 240 ms 383200 KiB
test_28.txt AC 231 ms 379372 KiB
test_29.txt AC 252 ms 386624 KiB
test_30.txt AC 249 ms 386368 KiB
test_31.txt AC 268 ms 388312 KiB
test_32.txt AC 269 ms 388668 KiB
test_33.txt AC 263 ms 388416 KiB
test_34.txt AC 259 ms 388384 KiB
test_35.txt AC 257 ms 388320 KiB
test_36.txt AC 254 ms 388028 KiB
test_37.txt AC 270 ms 388388 KiB
test_38.txt AC 268 ms 388200 KiB
test_39.txt AC 265 ms 388460 KiB
test_40.txt AC 259 ms 388380 KiB
test_41.txt AC 256 ms 388052 KiB
test_42.txt AC 253 ms 388168 KiB
test_43.txt AC 270 ms 388684 KiB
test_44.txt AC 265 ms 388024 KiB
test_45.txt AC 262 ms 388424 KiB
test_46.txt AC 260 ms 388268 KiB
test_47.txt AC 257 ms 388276 KiB
test_48.txt AC 256 ms 387828 KiB
test_49.txt AC 271 ms 388172 KiB
test_50.txt AC 275 ms 389120 KiB
test_51.txt AC 265 ms 388052 KiB
test_52.txt AC 260 ms 388328 KiB
test_53.txt AC 254 ms 388068 KiB
test_54.txt AC 254 ms 388176 KiB
test_55.txt AC 269 ms 388340 KiB
test_56.txt AC 266 ms 388200 KiB
test_57.txt AC 264 ms 388324 KiB
test_58.txt AC 259 ms 388360 KiB
test_59.txt AC 256 ms 388188 KiB
test_60.txt AC 260 ms 388300 KiB
test_61.txt AC 267 ms 388192 KiB
test_62.txt AC 264 ms 388228 KiB
test_63.txt AC 256 ms 387920 KiB
test_64.txt AC 254 ms 387840 KiB