結果
| 問題 |
No.323 yuki国
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 21:38:11 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,916 bytes |
| コンパイル時間 | 200 ms |
| コンパイル使用メモリ | 81,996 KB |
| 実行使用メモリ | 261,972 KB |
| 最終ジャッジ日時 | 2025-06-12 21:42:52 |
| 合計ジャッジ時間 | 7,354 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 2 TLE * 1 -- * 29 |
ソースコード
from collections import deque
def main():
import sys
input = sys.stdin.read().split()
ptr = 0
H = int(input[ptr])
ptr += 1
W = int(input[ptr])
ptr += 1
A = int(input[ptr])
ptr += 1
S_i = int(input[ptr])
ptr += 1
S_j = int(input[ptr])
ptr += 1
B = int(input[ptr])
ptr += 1
G_i = int(input[ptr])
ptr += 1
G_j = int(input[ptr])
ptr += 1
M = []
for _ in range(H):
M.append(input[ptr].strip())
ptr += 1
max_possible_size = 6000 # Based on problem constraints and movement possibilities
visited = [[[False] * (max_possible_size + 2) for _ in range(W)] for _ in range(H)]
queue = deque()
initial_size = A
if initial_size <= max_possible_size and initial_size > 0:
queue.append((S_i, S_j, initial_size))
visited[S_i][S_j][initial_size] = True
directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]
found = False
while queue:
i, j, size = queue.popleft()
for di, dj in directions:
ni = i + di
nj = j + dj
if 0 <= ni < H and 0 <= nj < W:
cell = M[ni][nj]
if cell == '*':
new_size = size + 1
else:
new_size = size - 1
if new_size <= 0:
continue
if new_size > max_possible_size:
continue
if not visited[ni][nj][new_size]:
visited[ni][nj][new_size] = True
queue.append((ni, nj, new_size))
if ni == G_i and nj == G_j and new_size == B:
found = True
print("Yes")
return
print("No")
if __name__ == "__main__":
main()
gew1fw