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 |
|
|
| 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 |