結果

問題 No.467 隠されていたゲーム
ユーザー cympfhcympfh
提出日時 2017-10-18 15:01:10
言語 Ruby
(3.3.0)
結果
AC  
実行時間 83 ms / 2,000 ms
コード長 1,051 bytes
コンパイル時間 183 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 12,288 KB
最終ジャッジ日時 2024-11-18 14:29:24
合計ジャッジ時間 3,042 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 83 ms
12,160 KB
testcase_01 AC 79 ms
12,160 KB
testcase_02 AC 79 ms
12,288 KB
testcase_03 AC 78 ms
12,288 KB
testcase_04 AC 81 ms
12,160 KB
testcase_05 AC 77 ms
12,288 KB
testcase_06 AC 77 ms
12,160 KB
testcase_07 AC 75 ms
12,160 KB
testcase_08 AC 75 ms
12,160 KB
testcase_09 AC 75 ms
12,288 KB
testcase_10 AC 75 ms
12,288 KB
testcase_11 AC 75 ms
12,288 KB
testcase_12 AC 77 ms
12,288 KB
testcase_13 AC 77 ms
12,288 KB
testcase_14 AC 78 ms
12,160 KB
testcase_15 AC 78 ms
12,288 KB
testcase_16 AC 79 ms
12,160 KB
testcase_17 AC 76 ms
12,160 KB
testcase_18 AC 77 ms
12,288 KB
testcase_19 AC 75 ms
12,288 KB
testcase_20 AC 79 ms
12,288 KB
testcase_21 AC 77 ms
12,288 KB
testcase_22 AC 76 ms
12,032 KB
testcase_23 AC 78 ms
12,288 KB
testcase_24 AC 76 ms
12,160 KB
testcase_25 AC 78 ms
12,288 KB
testcase_26 AC 76 ms
12,160 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

def solve(x, y, d)
  z = [x.abs, y.abs].max
  if z.zero?
    0
  elsif z < d
    2
  elsif z == d
    1
  else
    (z - 1) / d + 1
  end
end

# m = 20
# M = 2 * m + 1
# d = 4
# f = [nil] * M
# inf = 1000000000
# M.times{|i| f[i] = [inf] * M}
#
# f[m][m] = 0
# stack = [[m, m]]
#
# while not stack.empty?
#   x, y = stack.pop
#   (-d..d).each do |i|
#     (-d..d).each do |j|
#       next if i.abs != d && j.abs != d
#       x2 = x + i
#       y2 = y + j
#       next if x2 < -m || y2 < -m || x2 > 2*m || y2 > 2*m
#       if f[x2][y2] > f[x][y] + 1
#         f[x2][y2] = f[x][y] + 1
#         stack.push [x2, y2]
#       end
#     end
#   end
# end
#
#
# M.times do |i|
#   M.times do |j|
#     v = f[i][j]
#     if v.zero?
#       STDOUT.write sprintf "\e[31m%03d\e[0m ", v
#     elsif v.even?
#       STDOUT.write sprintf "\e[32m%03d\e[0m ", v
#     else
#       STDOUT.write sprintf "%03d ", v
#     end
#   end
#   puts ""
# end

_ = gets.to_i
ds = gets.chomp.split.map(&:to_i)
x, y = gets.chomp.split.map(&:to_i)
p ds.map {|d| solve(x, y, d)}.min
0