#CF2066E. 热带季节
热带季节
E. 热带季节
每个测试点的时间限制: 秒
每个测试点的内存限制: 兆字节
你有 个容量无限的桶。第 个桶最初装有 公斤水。本题中,假设所有桶本身的重量相同。
你知道恰好有一个桶的表面沾有少量热带毒药,总重量为 公斤。但你不知道哪个桶含有毒药。你的任务是找出这个有毒的桶。
所有桶都放在秤上。不幸的是,秤不显示每个桶的精确重量,而是对于每一对桶,显示它们重量的比较结果。因此,对于任意两个桶,你可以判断它们的重量是否相等,如果不相等,哪个更重。毒药和水都计入桶的重量。
秤始终开启,并且可以无限次使用这些比较信息。
你还可以倒水。你可以将水从任意桶倒入任意其他桶,数量任意。
但是,要倒水,你必须亲手拿起你倒出的那个桶,所以如果那个桶恰好是有毒的,你就会死。必须避免这种情况。
不过,你可以将水倒入有毒的桶而不接触它。
换句话说,你可以选择编号 (,,,编号为 的桶无毒),并执行 ,。这里 不一定是整数。
是否有可能通过倒水操作和秤的比较信息,保证找出哪个桶含有毒药,并且保持安全?你知道毒药恰好在一个桶上。
此外,你需要处理 个查询。在每个查询中,要么移除一个现有桶,要么添加一个装有特定水量的桶。每次查询后,你需要回答是否可能保证找出有毒的桶(已知恰好有一个桶有毒)。
输入
第一行包含两个整数 和 ()。
第二行包含 个整数 ()——现有桶中的水量。
接下来的 行每行包含一个查询,格式为 + x 或 - x,分别表示添加一个水量为 的桶,或移除一个水量为 的桶。保证当执行 - x 查询时,存在一个水量为 的桶,并且整个查询过程中始终至少有一个桶存在。所有查询中,。
输出
输出 行,分别对应所有查询之前以及每次查询之后的答案。如果可能找出有毒的桶,输出 Yes,否则输出 No。你可以以任意大小写输出答案,例如 "yEs"、"yes"、"Yes"、"YES" 都会被识别为肯定回答。
示例
输入
4 7
2 2 4 11
- 2
+ 4
+ 30
+ 40
- 4
+ 2
+ 2
输出
Yes
No
Yes
No
Yes
No
No
Yes
输入
6 7
5000 1000 400 400 100 99
+ 1
- 5000
- 1
- 400
- 400
- 100
- 99
输出
No
Yes
Yes
Yes
No
No
No
Yes
注意
在第一个测试中,在查询之前,桶的重量为 。你可以比较第一个和第二个桶的值。如果结果不相等,你可以确定较重的那一桶有毒。如果相等,则两个桶都无毒。然后你可以将第一个桶的所有内容倒入第二个桶。之后,第二个和第三个桶都含有 公斤水。现在比较第二个和第三个桶的值。如果结果不相等,则较重的那一桶有毒。否则,两个桶都无毒。唯一可能有毒的桶是第 个桶。因此,通过这个策略,我们可以安全地确定有毒的桶。