結果
| 問題 |
No.3063 Circle Balancing
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 14:56:39 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,172 bytes |
| コンパイル時間 | 165 ms |
| コンパイル使用メモリ | 82,228 KB |
| 実行使用メモリ | 67,708 KB |
| 最終ジャッジ日時 | 2025-06-12 14:58:29 |
| 合計ジャッジ時間 | 3,165 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 2 |
| other | RE * 27 |
ソースコード
from collections import deque
import sys
def main():
# 读取输入
R, C = map(int, sys.stdin.readline().split())
sy, sx = map(int, sys.stdin.readline().split())
gy, gx = map(int, sys.stdin.readline().split())
grid = [sys.stdin.readline().strip() for _ in range(R)]
# 转换为0-based索引
start = (sy - 1, sx - 1)
goal = (gy - 1, gx - 1)
# 初始化步骤数组和队列
steps = [[-1 for _ in range(C)] for _ in range(R)]
q = deque()
q.append(start)
steps[start[0]][start[1]] = 0
# 四个方向
dirs = [(-1, 0), (1, 0), (0, -1), (0, 1)]
while q:
i, j = q.popleft()
if i == goal[0] and j == goal[1]:
print(steps[i][j])
return
for di, dj in dirs:
ni = i + di
nj = j + dj
if 0 <= ni < R and 0 <= nj < C:
if grid[ni][nj] == '.' and steps[ni][nj] == -1:
steps[ni][nj] = steps[i][j] + 1
q.append((ni, nj))
# 根据题目描述,一定可以到达,所以无需处理无法到达的情况
print(-1)
if __name__ == "__main__":
main()
gew1fw