結果

問題 No.505 カードの数式2
ユーザー MaxMellon
提出日時 2017-07-03 04:53:20
言語 Ruby
(3.4.1)
結果
AC  
実行時間 92 ms / 2,000 ms
コード長 488 bytes
コンパイル時間 105 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 12,416 KB
最終ジャッジ日時 2024-11-14 07:28:13
合計ジャッジ時間 3,861 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 29
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

gets
arr = gets.chomp.split.map(&:to_i)

dp = {}
dp[0] = []
dp[0][0] = dp[0][1] = arr[0]

def calc_min_and_max(arr, cur)
  r = []
  c = 0
  0.upto(1) do |i|
    r[c] = arr[i] + cur
    c += 1
    r[c] = arr[i] - cur
    c += 1
    r[c] = arr[i] * cur
    c += 1
    if cur != 0
      r[c] = (arr[i] / (cur + 0.0)).ceil
      c += 1
    end
  end
  [r.min, r.max]
end

1.upto(arr.length - 1) do |i|
  dp[i] = {}
  dp[i] = calc_min_and_max(dp[i - 1], arr[i])
end

puts dp[arr.size - 1].max
0