#540. 口袋
口袋
C.口袋(bag)
时间限制:3s
空间限制:512MB
题意
小 L 需要维护一个口袋,口袋里全是数,一开始只有一个数 ,口袋中可以有很多数,同一个数可以出现多次。
小 L 对口袋依次进行 次操作,总共有三种不同的操作:
- 第一种操作:往口袋里添加一个新的数,值为 。
- 第二种操作:取出口袋中两个数 和 ,这两个数是小 L 自选的,之后将 这一个数放回这个口袋中,取出的数不放回。
- 第三种操作:这次操作小 L 可以自由选择为第一种操作或者第二种操作执行。
小 L 每次执行第二种操作的时候,如果当时口袋里的数个数 ,则小 L 会很急。这里如果本来需要执行的是第三种操作,然后小 L 选择了把这次操作选择成了第二种操作执行,当时口袋里的数个数 ,那他也会很急。
小 L 希望在自己不会急的前提下,让最终所有操作进行完之后,口袋中留下的数的平均值尽可能大,你需要求出这个最大的平均值,平均值即 口袋中数的和 除以 口袋中的数个数。
输入格式
本题有多组数据。
第一行输入一个正整数 ,表示数据组数。
对于每组数据:第一行输入一个正整数 表示事件个数,第二行输入 个数,每个数为 或 或 ,若为 则需要从口袋里拿出两个数,加起来再放回去,若为 则会往口袋中添加一个 ,若为 则可以从两种操作中任选一个执行。
输出格式
对于每组数据:
若无法做到,输出一行一个 。
否则,一行两个正整数 , 为答案的最简分数形式,即 。
样例1
输入
6
7
1 1 1 -1 1 1 -1
4
1 0 -1 0
4
0 -1 -1 0
1
0
2
0 0
1
-1
输出
3 2
3 1
-1
1 1
2 1
-1
数据范围
对于 的数据,保证 。
对于另外 的数据,保证 。
对于 的数据,保证 。
Related
In following contests: