結果
| 問題 |
No.467 隠されていたゲーム
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-05-18 18:01:35 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 744 bytes |
| コンパイル時間 | 227 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 12,416 KB |
| 最終ジャッジ日時 | 2024-10-04 16:31:32 |
| 合計ジャッジ時間 | 3,672 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 WA * 1 |
コンパイルメッセージ
Syntax OK
ソースコード
def sign(n)
n.positive? ? 1 : n.zero? ? 0 : -1
end
def solve(x0, y0, x, y, ds)
ans = 0
while true
return ans if x0 == x && y0 == y
dx = (x - x0).abs
dy = (y - y0).abs
ell = [dx, dy].max
ds.each do |d|
return ans + 1 if d == ell
end
maxd = ds[0]
if dx > 3 * maxd && dy > 3 * maxd
k = [dx / maxd, dy / maxd].min
x0 += k * maxd * sign(x - x0)
y0 += k * maxd * sign(y - y0)
ans += k
next
end
if ell >= 2 * maxd
x0 += maxd * sign(x - x0)
y0 += maxd * sign(y - y0)
ans += 1
next
end
return ans + 2
end
end
_ = gets.to_i
ds = gets.split.map(&:to_i)
ds.sort!
ds.reverse!
x, y = gets.split.map(&:to_i)
p solve(0, 0, x, y, ds)