提出 #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
結果
AC × 3
AC × 40
セット名 テストケース
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