Submission #42369003


Source Code Expand

#!/usr/bin/env ruby
N = gets.chomp.to_i
MENU = Array.new(N) { gets.chomp.split.map(&:to_i) }

# dp[i][0] : お腹が正常の時の美味しさの合計
# dp[i][1] : お腹を壊している時の美味しさの合計
dp = Array.new(N + 1) { Array.new(2, -Float::INFINITY) }
# 初期値はお腹が正常で美味しさは0
dp[0][0] = 0

MENU.each.with_index do |(x, y), i|
  # 食べる場合
  # NOTE: 毒があるかで死ぬかの瀬戸際なので、合計を加算できる遷移元が変わる
  # 毒がない場合
  if x == 0
    # 正常、腹痛それぞれから今回のメニューを食べることができる
    # かつその合計は遷移元が腹痛の場合も正常のみに記録される
    dp[i + 1][0] = [dp[i][0] + y, dp[i][1] + y].max
  # 毒入りの場合
  else
    # 正常からのみ今回のメニューを食べることができる
    dp[i + 1][1] = dp[i][0] + y
  end

  # 食べない場合もあるので、食べた場合と前の状態を比較して高い方を記録
  dp[i + 1][0] = [dp[i + 1][0], dp[i][0]].max
  dp[i + 1][1] = [dp[i + 1][1], dp[i][1]].max
end

# 最後に正常、腹痛のステータスで高い方を出力
puts dp[N].max

Submission Info

Submission Time
Task D - Poisonous Full-Course
User jojomasanori3
Language Ruby (2.7.1)
Score 400
Code Size 1194 Byte
Status AC
Exec Time 708 ms
Memory 68508 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 31
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt
Case Name Status Exec Time Memory
sample_01.txt AC 54 ms 14148 KiB
sample_02.txt AC 61 ms 14148 KiB
sample_03.txt AC 61 ms 14028 KiB
test_01.txt AC 60 ms 14036 KiB
test_02.txt AC 59 ms 13928 KiB
test_03.txt AC 56 ms 14096 KiB
test_04.txt AC 53 ms 14056 KiB
test_05.txt AC 105 ms 17312 KiB
test_06.txt AC 500 ms 45784 KiB
test_07.txt AC 198 ms 25248 KiB
test_08.txt AC 102 ms 17240 KiB
test_09.txt AC 302 ms 31944 KiB
test_10.txt AC 656 ms 56144 KiB
test_11.txt AC 434 ms 40040 KiB
test_12.txt AC 519 ms 47820 KiB
test_13.txt AC 650 ms 56532 KiB
test_14.txt AC 187 ms 24444 KiB
test_15.txt AC 535 ms 47632 KiB
test_16.txt AC 486 ms 45168 KiB
test_17.txt AC 670 ms 56880 KiB
test_18.txt AC 672 ms 56928 KiB
test_19.txt AC 680 ms 56900 KiB
test_20.txt AC 662 ms 56876 KiB
test_21.txt AC 669 ms 57012 KiB
test_22.txt AC 667 ms 56824 KiB
test_23.txt AC 669 ms 56804 KiB
test_24.txt AC 656 ms 56712 KiB
test_25.txt AC 659 ms 56756 KiB
test_26.txt AC 705 ms 66772 KiB
test_27.txt AC 665 ms 56756 KiB
test_28.txt AC 708 ms 68508 KiB