結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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
0