atcoder#ARC092C. [ARC092E] Both Sides Merger
[ARC092E] Both Sides Merger
配点 : 点
問題文
あなたは,長さ の数列 を持っています。
あなたは,この数列の長さが になるまで,繰り返し以下の操作を行います。
- まず,数列の要素を つ選ぶ。
- もしその要素が数列の端だった場合,その要素を削除する。
- もしその要素が数列の端でない場合,その要素を,選んだ要素の両隣の要素の和に書き換える。そしてその後,両隣の要素を削除する。
あなたは,最終的な数列の要素の値を最大化したいです。
最終的な数列の要素の値の最大値と,それを達成する手順を求めてください。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
- 行目には,最終的な数列の要素の値の最大値を出力せよ。
- 行目には,操作の回数を出力せよ。
- 行目には, 回目の操作で選ぶ要素が,その時点の数列で左から何番目かを出力せよ。
- 最大値を達成する手順が複数存在する場合,そのうちどれを出力しても良い。
5
1 4 3 7 5
11
3
1
4
2
数列は以下のように変化します。
- 回目の操作後の数列 :
- 回目の操作後の数列 :
- 回目の操作後の数列 :
4
100 100 -1 100
200
2
3
1
- 回目の操作後の数列 :
- 回目の操作後の数列 :
6
-1 -2 -3 1 2 3
4
3
2
1
2
- 回目の操作後の数列 :
- 回目の操作後の数列 :
- 回目の操作後の数列 :
9
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
5000000000
4
2
2
2
2