Submission #69673979


Source Code Expand

H, W = map(int, input().split())
S = [list(input().strip()) for _ in range(H)]
n = H * W
def id(i, j): return i * W + j
black = [0] * n
for i in range(H):
  for j in range(W):
    if S[i][j] == '#':
      black[id(i, j)] = 1
dirs = ((1,0),(-1,0),(0,1),(0,-1))
bdeg = [0] * n
for i in range(H):
  for j in range(W):
    v = id(i, j)
    if black[v]: continue
    c = 0
    for di, dj in dirs:
      ni, nj = i + di, j + dj
      if 0 <= ni < H and 0 <= nj < W and black[id(ni, nj)]:
        c += 1
    bdeg[v] = c
curr = [v for v in range(n) if black[v] == 0 and bdeg[v] == 1]
add = [0] * n
touched = [0] * n
touch = []
while curr:
  for v in curr:
    black[v] = 1
  touch.clear()
  for v in curr:
    i, j = divmod(v, W)
    for di, dj in dirs:
      ni, nj = i + di, j + dj
      if 0 <= ni < H and 0 <= nj < W:
        u = id(ni, nj)
        if black[u] == 0:
          if touched[u] == 0:
            touched[u] = 1
            touch.append(u)
          add[u] += 1
  nxt = []
  for u in touch:
    bdeg[u] += add[u]
    add[u] = 0
    touched[u] = 0
    if bdeg[u] == 1:
      nxt.append(u)
  curr = nxt
print(sum(black))

Submission Info

Submission Time
Task D - Ulam-Warburton Automaton
User uparupaaa
Language Python (PyPy 3.10-v7.3.12)
Score 425
Code Size 1178 Byte
Status AC
Exec Time 185 ms
Memory 123524 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 425 / 425
Status
AC × 3
AC × 40
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 57 ms 76676 KiB
00_sample_01.txt AC 57 ms 76564 KiB
00_sample_02.txt AC 58 ms 76656 KiB
01_test_00.txt AC 153 ms 107328 KiB
01_test_01.txt AC 112 ms 91064 KiB
01_test_02.txt AC 116 ms 92976 KiB
01_test_03.txt AC 138 ms 101324 KiB
01_test_04.txt AC 156 ms 109476 KiB
01_test_05.txt AC 132 ms 106372 KiB
01_test_06.txt AC 127 ms 106744 KiB
01_test_07.txt AC 121 ms 105940 KiB
01_test_08.txt AC 161 ms 116084 KiB
01_test_09.txt AC 166 ms 118176 KiB
01_test_10.txt AC 134 ms 104620 KiB
01_test_11.txt AC 139 ms 104712 KiB
01_test_12.txt AC 140 ms 104668 KiB
01_test_13.txt AC 143 ms 104708 KiB
01_test_14.txt AC 151 ms 105096 KiB
01_test_15.txt AC 157 ms 108396 KiB
01_test_16.txt AC 158 ms 109536 KiB
01_test_17.txt AC 166 ms 117076 KiB
01_test_18.txt AC 165 ms 123524 KiB
01_test_19.txt AC 168 ms 121112 KiB
01_test_20.txt AC 124 ms 104376 KiB
01_test_21.txt AC 124 ms 105052 KiB
01_test_22.txt AC 133 ms 104272 KiB
01_test_23.txt AC 133 ms 104248 KiB
01_test_24.txt AC 139 ms 106444 KiB
01_test_25.txt AC 150 ms 106760 KiB
01_test_26.txt AC 160 ms 104576 KiB
01_test_27.txt AC 155 ms 108056 KiB
01_test_28.txt AC 157 ms 107716 KiB
01_test_29.txt AC 176 ms 112260 KiB
01_test_30.txt AC 156 ms 108628 KiB
01_test_31.txt AC 156 ms 108268 KiB
01_test_32.txt AC 168 ms 109556 KiB
01_test_33.txt AC 185 ms 108996 KiB
01_test_34.txt AC 178 ms 109164 KiB
01_test_35.txt AC 180 ms 113908 KiB
01_test_36.txt AC 124 ms 104640 KiB