結果
問題 |
No.20 砂漠のオアシス
|
ユーザー |
|
提出日時 | 2017-06-03 18:24:30 |
言語 | Ruby (3.4.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 713 bytes |
コンパイル時間 | 535 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 24,320 KB |
最終ジャッジ日時 | 2024-10-13 05:56:44 |
合計ジャッジ時間 | 9,356 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 3 TLE * 1 -- * 17 |
コンパイルメッセージ
Syntax OK
ソースコード
N, V, X, Y = gets.split.take(4).map(&:to_i) X -= 1 Y -= 1 L = N.times.map{ gets.split.take(N).map(&:to_i) } $visited = N.times.map{[false] * N} $oasis = false DIRS = [[1,0], [0,1], [-1, 0], [0,-1]] def f(x, y, hp) # p [x,y,hp] hp -= L[x][y] return false if hp <= 0 return true if x == N-1 && y == N-1 if x == X && y == Y && !$oasis hp *= 2 $oasis = true $visited = N.times.map{[false] * N} $visited[x][y] = true end DIRS.each{|(px, py)| _x = x+px _y = y+py next if !_x.between?(0, N-1) next if !_y.between?(0, N-1) next if $visited[_x][_y] $visited[_x][_y] = true return true if f(_x, _y, hp) $visited[_x][_y] = false } false end p f(0, 0, V)