提出 #69776213
ソースコード 拡げる
"""
<方針>
- 探索をしていけば良さそう。
- 探索をする際は、まとめて更新せずに、`DFS`, `BFS` を行うと、正しく解けないので注意(n敗)。
"""
# 入力
H, W = map(int, input().split())
SS = [list(input()) for _ in range(H)]
# 十字キー https://en.wikipedia.org/wiki/D-pad
D_PAD = [
[+1, +0],
[-1, +0],
[+0, +1],
[+0, -1],
]
# 探索する対象
target = []
for i in range(H):
for j in range(W):
if(SS[i][j] == "#"):
target.append([i, j])
# 探索をする
while True:
# 探索対象がなければ終了する。
if not (target):
break
# 探索対象をまとめて塗る
for y, x in target:
SS[y][x] = "#"
# 次の対象を管理
new_target = []
# 次の対処を探す
for y, x in target:
# 上下左右
for dy, dx in D_PAD:
Y = y + dy
X = x + dx
# 枠内
if(0<=Y<H and 0<=X<W):
# まだ塗られていない
if (SS[Y][X] == "."):
# 上下左右の黒の数を探す
cnt = 0
for dr, dc in D_PAD:
R = Y + dr
C = X + dc
if(0<=R<H and 0<=C<W):
if(SS[R][C] == "#"):
cnt += 1
# 黒が一つしかない時、
if(cnt == 1):
# 次の探索に加える(黒で塗る)
new_target.append([Y, X])
# 新しい対象に変える
target = new_target
# 出力
ans = 0
for i in range(H):
for j in range(W):
if(SS[i][j] == "#"):
ans += 1
print(ans)
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Ulam-Warburton Automaton |
| ユーザ | mattsunkun |
| 言語 | Python (PyPy 3.10-v7.3.12) |
| 得点 | 425 |
| コード長 | 1647 Byte |
| 結果 | AC |
| 実行時間 | 218 ms |
| メモリ | 123784 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 425 / 425 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 60 ms | 76496 KiB |
| 00_sample_01.txt | AC | 66 ms | 76504 KiB |
| 00_sample_02.txt | AC | 57 ms | 76448 KiB |
| 01_test_00.txt | AC | 205 ms | 107120 KiB |
| 01_test_01.txt | AC | 131 ms | 94888 KiB |
| 01_test_02.txt | AC | 153 ms | 99560 KiB |
| 01_test_03.txt | AC | 174 ms | 106864 KiB |
| 01_test_04.txt | AC | 176 ms | 105132 KiB |
| 01_test_05.txt | AC | 195 ms | 122892 KiB |
| 01_test_06.txt | AC | 202 ms | 122020 KiB |
| 01_test_07.txt | AC | 192 ms | 123784 KiB |
| 01_test_08.txt | AC | 218 ms | 114016 KiB |
| 01_test_09.txt | AC | 217 ms | 113932 KiB |
| 01_test_10.txt | AC | 182 ms | 95232 KiB |
| 01_test_11.txt | AC | 159 ms | 95036 KiB |
| 01_test_12.txt | AC | 176 ms | 95508 KiB |
| 01_test_13.txt | AC | 187 ms | 95968 KiB |
| 01_test_14.txt | AC | 182 ms | 96708 KiB |
| 01_test_15.txt | AC | 187 ms | 96364 KiB |
| 01_test_16.txt | AC | 189 ms | 98192 KiB |
| 01_test_17.txt | AC | 196 ms | 102036 KiB |
| 01_test_18.txt | AC | 186 ms | 111808 KiB |
| 01_test_19.txt | AC | 208 ms | 115552 KiB |
| 01_test_20.txt | AC | 128 ms | 96476 KiB |
| 01_test_21.txt | AC | 132 ms | 97328 KiB |
| 01_test_22.txt | AC | 146 ms | 96508 KiB |
| 01_test_23.txt | AC | 149 ms | 96804 KiB |
| 01_test_24.txt | AC | 160 ms | 96856 KiB |
| 01_test_25.txt | AC | 168 ms | 97228 KiB |
| 01_test_26.txt | AC | 194 ms | 97600 KiB |
| 01_test_27.txt | AC | 202 ms | 98216 KiB |
| 01_test_28.txt | AC | 154 ms | 97856 KiB |
| 01_test_29.txt | AC | 195 ms | 102596 KiB |
| 01_test_30.txt | AC | 180 ms | 98820 KiB |
| 01_test_31.txt | AC | 160 ms | 98440 KiB |
| 01_test_32.txt | AC | 188 ms | 99860 KiB |
| 01_test_33.txt | AC | 177 ms | 99424 KiB |
| 01_test_34.txt | AC | 183 ms | 99504 KiB |
| 01_test_35.txt | AC | 217 ms | 103820 KiB |
| 01_test_36.txt | AC | 128 ms | 97228 KiB |