結果
問題 | No.1949 足し算するだけのパズルゲーム(2) |
ユーザー |
|
提出日時 | 2023-05-23 13:01:04 |
言語 | PyPy3 (7.3.11) |
結果 |
AC
|
実行時間 | 487 ms / 3,000 ms |
コード長 | 2,435 bytes |
コンパイル時間 | 2,098 ms |
コンパイル使用メモリ | 86,856 KB |
実行使用メモリ | 107,816 KB |
最終ジャッジ日時 | 2023-08-24 17:06:14 |
合計ジャッジ時間 | 13,295 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge15 |
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 238 ms
92,252 KB |
testcase_01 | AC | 373 ms
101,152 KB |
testcase_02 | AC | 237 ms
92,292 KB |
testcase_03 | AC | 236 ms
92,236 KB |
testcase_04 | AC | 364 ms
93,244 KB |
testcase_05 | AC | 239 ms
92,136 KB |
testcase_06 | AC | 355 ms
92,964 KB |
testcase_07 | AC | 324 ms
99,092 KB |
testcase_08 | AC | 401 ms
97,308 KB |
testcase_09 | AC | 330 ms
99,600 KB |
testcase_10 | AC | 343 ms
100,728 KB |
testcase_11 | AC | 416 ms
103,060 KB |
testcase_12 | AC | 377 ms
101,504 KB |
testcase_13 | AC | 487 ms
107,232 KB |
testcase_14 | AC | 469 ms
107,816 KB |
testcase_15 | AC | 469 ms
107,812 KB |
testcase_16 | AC | 392 ms
97,392 KB |
testcase_17 | AC | 324 ms
99,460 KB |
testcase_18 | AC | 389 ms
97,296 KB |
testcase_19 | AC | 417 ms
101,188 KB |
testcase_20 | AC | 239 ms
92,120 KB |
testcase_21 | AC | 392 ms
101,092 KB |
testcase_22 | AC | 345 ms
100,020 KB |
testcase_23 | AC | 240 ms
92,264 KB |
testcase_24 | AC | 486 ms
106,880 KB |
testcase_25 | AC | 328 ms
99,596 KB |
ソースコード
import sys, re from fractions import Fraction from math import ceil, floor, sqrt, pi, factorial, gcd from copy import deepcopy from collections import Counter, deque, defaultdict from heapq import heapify, heappop, heappush from itertools import accumulate, product, combinations, combinations_with_replacement, permutations from bisect import bisect, bisect_left, bisect_right from functools import reduce, lru_cache from decimal import Decimal, getcontext, ROUND_HALF_UP def i_input(): return int(input()) def i_map(): return map(int, input().split()) def i_list(): return list(i_map()) def i_row(N): return [i_input() for _ in range(N)] def i_row_list(N): return [i_list() for _ in range(N)] def s_input(): return input() def s_map(): return input().split() def s_list(): return list(s_map()) def s_row(N): return [s_input for _ in range(N)] def s_row_str(N): return [s_list() for _ in range(N)] def s_row_list(N): return [list(s_input()) for _ in range(N)] def lcm(a, b): return a * b // gcd(a, b) def get_distance(x1, y1, x2, y2): d = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) return d def rotate(table): n_fild = [] for x in zip(*table[::-1]): n_fild.append(x) return n_fild sys.setrecursionlimit(10 ** 7) INF = float('inf') MOD = 10 ** 9 + 7 MOD2 = 998244353 alpa = 'abcdefghijklmnopqrstuvwxyz' ALPA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' input = sys.stdin.readline def main(): H, W, Y, X = i_map() X, Y = Y, X X -= 1 Y -= 1 A = [i_list() for i in range(H)] move = [[0, 1], [0, -1], [1, 0], [-1, 0]] now = A[X][Y] que = deque() que.append([A[X][Y], X, Y]) juge = [[False] * W for i in range(H)] juge[X][Y] = True total = 0 while que: p, x, y = que.popleft() cou = 0 for a, b in move: nx = x + a ny = y + b if not (0<=nx<H and 0<=ny<W): continue if juge[nx][ny]: continue if now > A[nx][ny]: now += A[nx][ny] juge[nx][ny] = True que.append([A[nx][ny], nx, ny]) else: cou += 1 if cou > 0: que.append([p, x, y]) total += 1 if total > 10 ** 6: print('No') exit() flag = 0 for i in range(H): score = sum(juge[i]) flag += score if flag == H * W: print('Yes') else: print('No') if __name__ == '__main__': main()