結果
問題 | No.258 回転寿司(2) |
ユーザー |
|
提出日時 | 2016-02-06 19:13:32 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 98 ms / 2,000 ms |
コード長 | 455 bytes |
コンパイル時間 | 123 ms |
コンパイル使用メモリ | 7,680 KB |
実行使用メモリ | 13,824 KB |
最終ジャッジ日時 | 2024-11-06 18:57:25 |
合計ジャッジ時間 | 9,855 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 67 |
コンパイルメッセージ
Syntax OK
ソースコード
gets vs = gets.split.map(&:to_i) S = Struct.new(:val, :idxs) a = [] a[0] = S.new(vs[0], [0]) if vs.size > 0 a[1] = S.new(vs[1], [1]) if vs.size > 1 a[2] = S.new(vs[0] + vs[2], [0, 2]) if vs.size > 2 for i in 3...vs.size do s_prev = a[i-3].val > a[i-2].val ? a[i-3] : a[i-2] a[i] = S.new(s_prev.val + vs[i], s_prev.idxs + [i]) end s_max = a.size >= 2 && a[-2].val > a[-1].val ? a[-2] : a[-1] puts s_max.val puts s_max.idxs.map{|i| i + 1}.join(" ")