結果
| 問題 |
No.340 雪の足跡
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2025-10-02 04:56:29 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,419 bytes |
| コンパイル時間 | 567 ms |
| コンパイル使用メモリ | 82,164 KB |
| 実行使用メモリ | 107,544 KB |
| 最終ジャッジ日時 | 2025-10-02 04:56:41 |
| 合計ジャッジ時間 | 11,006 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 30 WA * 2 |
ソースコード
import sys
input = sys.stdin.readline
from collections import deque
W,H,N=map(int,input().split())
UP=[[0]*W for i in range(H)]
RIGHT=[[0]*W for i in range(H)]
for i in range(N):
M=int(input())
L=list(map(int,input().split()))
for j in range(len(L)-1):
x=L[j]
a,b=x//W,x%W
y=L[j+1]
c,d=y//W,y%W
if a==c:
if b>d:
b,d=d,b
RIGHT[a][b]+=1
RIGHT[a][d]-=1
else:
if a>c:
a,c=c,a
UP[a][b]+=1
UP[c][b]-=1
for i in range(H):
for j in range(W):
if i>0:
UP[i][j]+=UP[i-1][j]
if j>0:
RIGHT[i][j]+=RIGHT[i][j-1]
D=[[1<<60]*W for i in range(H)]
D[0][0]=0
Q=[(0,0)]
Q=deque(Q)
while Q:
x,y=Q.popleft()
if RIGHT[x][y]>0:
if D[x][y+1]>D[x][y]+1:
D[x][y+1]=D[x][y]+1
Q.append((x,y+1))
if y-1>=0 and RIGHT[x][y-1]>0:
if D[x][y-1]>D[x][y]+1:
D[x][y-1]=D[x][y]+1
Q.append((x,y-1))
if UP[x][y]>0:
if D[x+1][y]>D[x][y]+1:
D[x+1][y]=D[x][y]+1
Q.append((x+1,y))
if x-1>=0 and RIGHT[x-1][y]>0:
if D[x-1][y]>D[x][y]+1:
D[x-1][y]=D[x][y]+1
Q.append((x-1,y))
ANS=D[H-1][W-1]
if ANS>10**9:
print("Odekakedekinai..")
else:
print(ANS)
titia