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