#863. #(subset sum = K) with Add and Erase
#(subset sum = K) with Add and Erase
题面翻译
维护一个箱子,有 个操作,分为如下类型:
+ x
,表示向箱子中扔一个写有数字 的球。- x
,表示从箱子中拿出一个写有数字 的球(保证存在这样的球)。
每一次操作后,计算:有多少种从箱子里拿球的方法,使得拿的球上写有的数字的总和为 (并不需要真正拿出球)?答案对 取余。
题目描述
箱を用意します。最初、箱は空です。 この箱に対して、以下の 種類の操作を合計 個、入力で与えられた順に施します。
+
タイプ : 箱の中に整数 の書かれたボールを つ追加する。
-
タイプ : 箱の中にある、整数 の書かれたボールを つ取り除く。 但し、取り除く前の時点で箱の中に整数 が書かれたボールが含まれることが保証されます。
各操作後の箱に関して、以下の問題を解いてください。
箱からボールをいくつか取り出して、ボールに書かれた整数の総和を とする方法の総数を で割った余りを求めてください。 但し、箱の中に入っている全てのボールは区別可能です。
输入格式
入力は以下の形式で標準入力から与えられる。 但し、 は 個目の操作を表す。
输出格式
全体で 行出力せよ。 そのうち 行目には、 個目までの操作を終えた時点での答えを出力せよ。
样例 #1
样例输入 #1
15 10
+ 5
+ 2
+ 3
- 2
+ 5
+ 10
- 3
+ 1
+ 3
+ 3
- 5
+ 1
+ 7
+ 4
- 3
样例输出 #1
0
0
1
0
1
2
2
2
2
2
1
3
5
8
5
提示
制約
- 入力は全て整数
- タイプ の操作に関して、
- 全ての操作は問題文中の条件を満たす。
Sample Explanation 1
この入力には、操作が 個含まれます。 最後の操作の後、箱の中に入ったボールは となります。 総和を にする方法は以下の 通りです。 - ( 番目のボールを取り出す ) - ( 番目のボールを取り出す ) - ( 番目のボールを取り出す ) - ( 番目のボールを取り出す ) - ( 番目のボールを取り出す )
相关
在以下作业中: