結果

問題 No.1949 足し算するだけのパズルゲーム(2)
ユーザー ntuda
提出日時 2022-10-24 20:23:59
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,062 ms / 3,000 ms
コード長 877 bytes
コンパイル時間 448 ms
コンパイル使用メモリ 81,652 KB
実行使用メモリ 100,692 KB
最終ジャッジ日時 2024-07-02 23:20:51
合計ジャッジ時間 10,502 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

import heapq
from collections import deque

H, W, Y, X = map(int, input().split())
A = [list(map(int, input().split())) for _ in range(H)]

now = A[Y - 1][X - 1]
A[Y - 1][X - 1] = 0
dir = [[0, 1], [1, 0], [0, -1], [-1, 0]]
cnt = 1
Q = deque([(Y - 1, X - 1)])
Q2 = []
flag = 1
while flag:
    flag = 0
    while Q:
        i, j = Q.pop()
        for di, dj in dir:
            i2 = i + di
            j2 = j + dj
            if 0 <= i2 < H and 0 <= j2 < W:
                if A[i2][j2] > 0:
                    heapq.heappush(Q2, (A[i2][j2], i2, j2))
                    A[i2][j2] = 0
    while Q2:
        a, i, j = heapq.heappop(Q2)
        if a < now:
            flag = 1
            now += a
            Q.append((i, j))
            cnt += 1
        else:
            heapq.heappush(Q2, (a, i, j))
            break

if cnt == H * W:
    print("Yes")
else:
    print("No")
0