結果
| 問題 |
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)