結果
問題 |
No.367 ナイトの転身
|
ユーザー |
|
提出日時 | 2019-02-05 12:50:29 |
言語 | Nim (2.2.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 625 bytes |
コンパイル時間 | 3,574 ms |
コンパイル使用メモリ | 67,296 KB |
実行使用メモリ | 14,880 KB |
最終ジャッジ日時 | 2024-07-01 11:25:54 |
合計ジャッジ時間 | 8,536 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 WA * 7 TLE * 1 -- * 15 |
ソースコード
import sequtils,strutils var hw=stdin.readLine.split.map parseInt h=hw[0] w=hw[1] M=newSeqWith h:stdin.readLine g,o:int q=newSeq[(int,int,int,int)]() D=newSeqWith w:newSeqWith h:[9999,9999] for y in 0..<h:(for x in 0..<w:(if M[y][x]=='S':(D[x][y][0]=0;q&=(x,y,1,0));if M[y][x]=='G':(g=x;o=y))) while q.len>0:(let(x,y,k,f)=q[0];q=q[1..^1];for d in[@[(1,1),(-1,-1),(1,-1),(-1,1)],@[(1,2),(2,1),(-1,-2),(-2,-1),(-1,2),(-2,1),(1,-2),(2,-1)]][k]:(let(n,m)=(x+d[0],y+d[1]);if n in 0..<w and m in 0..<h:(if n==g and m==o:quit $(f+1),0;var z=k;if M[m][n]=='R':z=1-k;if D[n][m][z]>f+1:(D[n][m][z]=f+1;q&=(n,m,z,f+1))))) echo -1