結果
| 問題 | No.3679 なんかでっかい虫リターンズ |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 13:16:06 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
AC
|
| 実行時間 | 100 ms / 2,000 ms |
| + 508µs | |
| コード長 | 1,190 bytes |
| 記録 | |
| コンパイル時間 | 232 ms |
| コンパイル使用メモリ | 96,084 KB |
| 実行使用メモリ | 85,376 KB |
| 最終ジャッジ日時 | 2026-09-05 13:16:17 |
| 合計ジャッジ時間 | 3,572 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
from collections import deque
h, w = map(int, input().split())
a, b = map(int, input().split())
r1, c1, r2, c2 = map(int, input().split())
p, q = map(int, input().split())
a -= 1; b -= 1
r1 -= 1; r2 -= 1; c1 -= 1; c2 -= 1
p -= 1; q -= 1
dxy = [0, 1, 0, -1, 0]
length1 = [[10**18 for _ in range(w)] for _ in range(h)]
length1[a][b] = 0
queue = deque([(a, b)])
while len(queue) > 0:
x, y = queue.popleft()
for i in range(4):
nx = x + dxy[i]
ny = y + dxy[i+1]
if 0 <= nx < h and 0 <= ny < w and length1[nx][ny] == 10**18:
length1[nx][ny] = length1[x][y] + 1
queue.append((nx, ny))
length2 = [[10**18 for _ in range(w)] for _ in range(h)]
length2[p][q] = 0
queue = deque([(p, q)])
while len(queue) > 0:
x, y = queue.popleft()
for i in range(4):
nx = x + dxy[i]
ny = y + dxy[i+1]
if 0 <= nx < h and 0 <= ny < w and length2[nx][ny] == 10**18:
length2[nx][ny] = length2[x][y] + 1
queue.append((nx, ny))
ans = 10**18
for x in range(r1, r2+1):
for y in range(c1, c2+1):
tmp = length1[x][y] + length2[x][y] + length1[p][q]
ans = min(ans, tmp)
print(ans)