問題一覧 > 通常問題

No.1536 仕切り直し

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 36
作問者 : 57tggx / テスター : logx Re_menal2 ゅゅ pepper_aobuta
0 ProblemId : 6144 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-05-21 14:02:07

問題文

N 個のボールが一列に並んでおり, 左から i1iN )番目のボールにははじめ整数 Ai が書かれています.

ゅゅさんは, 隣り合うボールのすき間 (N1) 箇所・ 左端のボールの左隣・ 右端のボールの右隣をあわせた 合計 (N+1) 箇所に, 全部で M 枚の仕切りを入れることができます. 同じ場所に複数枚の仕切りを入れることも可能です.

M 枚の仕切りを入れた後, 以下の方法で得点が計算されます.

  1. 各仕切りについて,順に次の操作を行う: 仕切りより右にある 全てのボールに書かれた整数 X を, 1 をかけた値 X に書き換える.
  2. ボールに書かれた整数の総和を,得点とする.

得点を最大化するような仕切りの入れ方を 1 つ出力してください.出力にあたっては,

  • 左端のボールの左隣を 0
  • 左から i 番目のボールと i+1 番目のボールの間の すき間を i
  • 右端のボールの右隣を N
で表し,それぞれの仕切りを入れる場所を出力してください.

入力

N M
A1 A2  AN

制約:

  • 入力はすべて整数
  • 1N2000
  • 1M2000
  • 109Ai109i=1,2,,N

出力

T1
T2

TM
M 行に分けて出力してください. j 行目には, j 番目の仕切りを入れる場所 Tj (ただし 0TjN )を出力してください. 得点を最大化する仕切りの入れ方が複数あるときは,どれを出力してもかまいません.また, T1,T2,,TM の順番も問いません.

サンプル

サンプル1
入力
4 2
1 -2 -3 4
出力
1
3

2 枚の仕切りをそれぞれ位置 1 と位置 3 に入れて 1 | 2 3 | 4 とします. 1 枚目の仕切りより右にある全てのボールに書かれている値に 1 をかけると 1 | 2 3 | 4 となり, 次に 2 枚目の仕切りより右にある全てのボールに書かれている値に 1 をかけると 1 | 2 3 | 4 となるので, 得点は 10 となります. これより大きな得点を実現する仕切りの入れ方は存在しません.

サンプル2
入力
3 1
3 -2 3
出力
3

位置 3 (右端のボールの右)に仕切りを入れると 得点は 4 となり,これが最大です.

サンプル3
入力
3 2
2 3 4
出力
1
1

同じ場所に仕切りを複数枚入れることも可能です.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。