結果
| 問題 | No.3679 なんかでっかい虫リターンズ |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 13:33:38 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
AC
|
| 実行時間 | 79 ms / 2,000 ms |
| + 247µs | |
| コード長 | 997 bytes |
| 記録 | |
| コンパイル時間 | 227 ms |
| コンパイル使用メモリ | 95,624 KB |
| 実行使用メモリ | 85,408 KB |
| 最終ジャッジ日時 | 2026-09-05 13:34:45 |
| 合計ジャッジ時間 | 3,248 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
from collections import deque
H, W = map(int, input().split())
A, B = map(int, input().split())
A -= 1
B -= 1
R1, C1, R2, C2 = map(int, input().split())
R1, C1, R2, C2 = R1 - 1, C1 - 1, R2 - 1, C2 - 1
P, Q = map(int, input().split())
P -= 1
Q -= 1
room = [[False]*W for _ in range(H)]
for i in range(H):
for j in range(W):
if R1 <= i <= R2 and C1 <= j <= C2:
room[i][j] = True
q = deque()
q.append([A, B])
gone = [[False]*W for _ in range(H)]
gone[A][B] = True
while q:
r, c = q.popleft()
if room[r][c]:
ar, ac = r, c
break
else:
for di, dj in [(0, 1), (0, -1), (1, 0), (-1, 0)]:
ni, nj = r + di, c + dj
if not(0 <= ni < H and 0 <= nj < W):
continue
if gone[ni][nj]:
continue
gone[ni][nj] = True
q.append([ni, nj])
def dist(x, y, dx, dy):
return abs(x - dx) + abs(y - dy)
print(dist(A, B, ar, ac) + dist(ar, ac, P, Q) + dist(P, Q, A, B))