006 - 宝集め
時間制限 1 秒 / メモリ制限 64 MB / 得点 10 / x 6 /
問題
あなたは旅をして、宝石を集めています。
あなたが持っている袋は大きさに限りがあるため、$M$個までしか宝石を入れることが出来ません。
今から起こる$Q$個のイベントに対処してください。
イベントは2種類あり、内容は以下の通りです。
・イベント1
価値が$A$の宝石を見つける。袋に宝石が入りきるなら宝石を入れ、入りきらないのなら袋の中の宝石か見つけた宝石のうち1つを選んで捨て、それ以外の宝石を袋に入れる。
・イベント2
今袋の中にある宝石の価値の総和(合計)を答える。
なるべく価値の高い宝石を集めるように行動した時、イベント2で答える値を出力してください。
入力
入力は以下の形式で標準入力から与えられる。
$M$ $Q$ $Event_1$ $Event_2$ ... $Event_Q$
1行目に整数$M,Q$が与えられる。
2行目から$Q$行にかけてイベントの内容が与えられる。
イベントの内容は以下の形式で与えられる。
・イベント1
$1$ $A$・イベント2
$2$
出力
出力の最後に改行を入れること。
制約
全ての入出力ケースについて以下を満たす。
- $1 \leq M,Q,A \leq 2×10^5$
- 入力はすべて整数
- イベント2は必ず1回以上起こる。
入出力例
入力例1
2 5 1 3 1 4 2 1 5 2
出力例1
7 9
あなたはまず、価値3,4の宝石をそれぞれ見つけます。袋には2個までの宝石が入るので、これを入れて、7と出力します。
その後、価値5の宝石を見つけますが、袋には3個は入りきらないので、価値3の宝石を捨て、9と出力します。
入力例2
3 10 2 2 1 31585 1 26721 1 26733 1 4806 2 1 27499 1 19001 2
出力例2
0 0 85039 85817
イベント2の時点で、袋に入っている宝石の個数が0個かもしれません。
入力例3
4 20 1 22551 1 29447 2 1 1371 2 1 12461 1 31338 1 12442 1 21973 1 19715 1 22811 1 932 1 26745 1 6233 1 4425 1 736 1 1506 1 27103 1 4281 2
出力例3
51998 53369 114633
ここにそのようなケースを載せることはできませんが、答えがint型に収まらない場合もあります。