結果
| 問題 |
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(" ")