結果

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

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 90 ms
12,032 KB
testcase_01 AC 89 ms
12,032 KB
testcase_02 AC 94 ms
12,160 KB
testcase_03 AC 89 ms
12,160 KB
testcase_04 AC 88 ms
12,416 KB
testcase_05 AC 92 ms
12,416 KB
testcase_06 AC 92 ms
12,288 KB
testcase_07 AC 91 ms
12,160 KB
testcase_08 AC 89 ms
12,160 KB
testcase_09 AC 88 ms
12,032 KB
testcase_10 AC 89 ms
12,288 KB
testcase_11 AC 89 ms
12,288 KB
testcase_12 AC 90 ms
12,160 KB
testcase_13 AC 89 ms
12,032 KB
testcase_14 AC 90 ms
12,032 KB
testcase_15 AC 90 ms
12,288 KB
testcase_16 AC 94 ms
12,288 KB
testcase_17 AC 92 ms
12,160 KB
testcase_18 AC 94 ms
12,032 KB
testcase_19 AC 91 ms
12,416 KB
testcase_20 AC 90 ms
12,288 KB
testcase_21 AC 92 ms
12,160 KB
testcase_22 AC 91 ms
12,160 KB
testcase_23 AC 92 ms
12,160 KB
testcase_24 AC 92 ms
12,032 KB
testcase_25 AC 93 ms
12,160 KB
testcase_26 AC 93 ms
12,288 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