Submission #60824295


Source Code Expand

Copy
"""
<>
-
- (`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]]
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
"""
<方針>
- 再帰的に探索を行う.ただし,倒す順番はヒープで最弱を指定する.
- 重複の無いように,スライムを既に倒したかどうか(`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)

Submission Info

Submission Time
Task E - Takahashi is Slime 2
User mattsunkun
Language Python (PyPy 3.10-v7.3.12)
Score 450
Code Size 1581 Byte
Status AC
Exec Time 1352 ms
Memory 131164 KB

Judge Result

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


2025-04-05 (Sat)
23:45:47 +00:00