提出 #60824295


ソースコード 拡げる

"""
<方針>
- 再帰的に探索を行う.ただし,倒す順番はヒープで最弱を指定する.
- 重複の無いように,スライムを既に倒したかどうか(`killed`)は管理する.
"""
import heapq
# 入力
H, W, XX = map(int, input().split())
P, Q = map(int, input().split())
SS = [list(map(int, input().split())) for _ in range(H)]
P -= 1
Q -= 1
killed = [[False]*W for _ in range(H)]

# 🛡️高橋くん🗡️の強さ
power = 0

# ヒープでスライムを倒していく.
## 強さ,縦インデックス,横インデックス
q = [[SS[P][Q], P, Q]]

# ヒープを回す
while q:
  # 強さ,縦インデックス,横インデックス
  p, y, x = heapq.heappop(q)
  
  # 既に倒されたかどうかを判定
  if killed[y][x]:
    continue
  else:
    killed[y][x] = True
  
  # 最初 or 倒せる条件のとき
  if power==0 or p<power/XX:
    # 🛡️高橋くん🗡を強化する
    power += p
    # 近傍を探索
    for (dy, dx) in [
      (0, 1), 
      (1, 0), 
      (0, -1), 
      (-1, 0), 
      ]:
      Y = y + dy
      X = x + dx
      # 枠内のとき
      if (0<=Y<H) and (0<=X<W):
        # TLE回避のために,自明な倒されたスライムは登録しない.
        if not killed[Y][X]:
          # そのスライムをヒープに登録する.
          heapq.heappush(q, [SS[Y][X], Y, X])
  # 近傍で最弱のスライムすら倒せない🛡️高橋くん🗡は引退してもらう
  else:
    break

# 出力
print(power)

提出情報

提出日時
問題 E - Takahashi is Slime 2
ユーザ mattsunkun
言語 Python (PyPy 3.10-v7.3.12)
得点 450
コード長 1581 Byte
結果 AC
実行時間 1352 ms
メモリ 131164 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 3
AC × 65
セット名 テストケース
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_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt, 01_random_56.txt, 01_random_57.txt, 01_random_58.txt, 01_random_59.txt, 01_random_60.txt, 01_random_61.txt, 01_random_62.txt, 01_random_63.txt, 01_random_64.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 58 ms 76520 KiB
00_sample_01.txt AC 57 ms 76580 KiB
00_sample_02.txt AC 57 ms 76692 KiB
01_random_03.txt AC 1290 ms 130100 KiB
01_random_04.txt AC 132 ms 85024 KiB
01_random_05.txt AC 1272 ms 129300 KiB
01_random_06.txt AC 326 ms 92792 KiB
01_random_07.txt AC 1299 ms 129936 KiB
01_random_08.txt AC 132 ms 84948 KiB
01_random_09.txt AC 1352 ms 131164 KiB
01_random_10.txt AC 261 ms 90600 KiB
01_random_11.txt AC 82 ms 83424 KiB
01_random_12.txt AC 58 ms 76332 KiB
01_random_13.txt AC 82 ms 83376 KiB
01_random_14.txt AC 192 ms 87548 KiB
01_random_15.txt AC 1259 ms 127920 KiB
01_random_16.txt AC 62 ms 80952 KiB
01_random_17.txt AC 1291 ms 130824 KiB
01_random_18.txt AC 164 ms 86600 KiB
01_random_19.txt AC 1194 ms 124764 KiB
01_random_20.txt AC 67 ms 80972 KiB
01_random_21.txt AC 1296 ms 129320 KiB
01_random_22.txt AC 65 ms 81252 KiB
01_random_23.txt AC 81 ms 83436 KiB
01_random_24.txt AC 64 ms 80976 KiB
01_random_25.txt AC 81 ms 83644 KiB
01_random_26.txt AC 60 ms 80912 KiB
01_random_27.txt AC 80 ms 83716 KiB
01_random_28.txt AC 66 ms 81352 KiB
01_random_29.txt AC 81 ms 83396 KiB
01_random_30.txt AC 70 ms 83036 KiB
01_random_31.txt AC 82 ms 83908 KiB
01_random_32.txt AC 65 ms 80880 KiB
01_random_33.txt AC 81 ms 83572 KiB
01_random_34.txt AC 72 ms 82856 KiB
01_random_35.txt AC 81 ms 83656 KiB
01_random_36.txt AC 61 ms 80820 KiB
01_random_37.txt AC 79 ms 83840 KiB
01_random_38.txt AC 67 ms 80872 KiB
01_random_39.txt AC 81 ms 83464 KiB
01_random_40.txt AC 65 ms 81256 KiB
01_random_41.txt AC 82 ms 83880 KiB
01_random_42.txt AC 67 ms 82792 KiB
01_random_43.txt AC 58 ms 76508 KiB
01_random_44.txt AC 57 ms 76856 KiB
01_random_45.txt AC 57 ms 76412 KiB
01_random_46.txt AC 63 ms 82108 KiB
01_random_47.txt AC 62 ms 81788 KiB
01_random_48.txt AC 65 ms 81676 KiB
01_random_49.txt AC 56 ms 76688 KiB
01_random_50.txt AC 57 ms 76620 KiB
01_random_51.txt AC 57 ms 76716 KiB
01_random_52.txt AC 66 ms 81836 KiB
01_random_53.txt AC 67 ms 81592 KiB
01_random_54.txt AC 67 ms 81548 KiB
01_random_55.txt AC 62 ms 76492 KiB
01_random_56.txt AC 61 ms 76888 KiB
01_random_57.txt AC 61 ms 76524 KiB
01_random_58.txt AC 328 ms 110084 KiB
01_random_59.txt AC 330 ms 111580 KiB
01_random_60.txt AC 329 ms 112456 KiB
01_random_61.txt AC 58 ms 76580 KiB
01_random_62.txt AC 57 ms 76340 KiB
01_random_63.txt AC 57 ms 76536 KiB
01_random_64.txt AC 57 ms 76544 KiB