Submission #5889416


Source Code Expand

gets
as = gets.split.map(&:to_i)
bs = gets.split.map(&:to_i)

res = Array.new(as.size+1){Array.new(bs.size+1, 0)}

(0..as.size).reverse_each do |a|
  (0..bs.size).reverse_each do |b|
    next if a == as.size && b == bs.size
    if (a+b)%2 == 0
      if a == as.size
        res[a][b] = res[a][b+1] + bs[b]
      elsif b == bs.size
        res[a][b] = res[a+1][b] + as[a]
      else
        res[a][b] = [res[a+1][b] + as[a], res[a][b+1] + bs[b]].max
      end
    else
      if a == as.size
        res[a][b] = res[a][b+1]
      elsif b == bs.size
        res[a][b] = res[a+1][b]
      else
        res[a][b] = [res[a+1][b], res[a][b+1]].min
      end
    end
  end
end

p res[0][0]

Submission Info

Submission Time
Task B - ゲーム
User somurie06
Language Ruby (2.3.3)
Score 3
Code Size 712 Byte
Status AC
Exec Time 734 ms
Memory 9980 KB

Judge Result

Set Name All
Score / Max Score 3 / 3
Status
AC × 5
Set Name Test Cases
All 00, 01, 02, 90, 91
Case Name Status Exec Time Memory
00 AC 7 ms 1788 KB
01 AC 497 ms 7548 KB
02 AC 734 ms 9980 KB
90 AC 7 ms 1788 KB
91 AC 7 ms 1788 KB