bzoj#P3898. 打的士

打的士

题目描述

酒足饭饱之后,一帮人都喝醉了。

嘛,由于酒驾查的很严格,所以说接下来就是送客人回家的难题了。

嘛,接下来就是操蛋的设定。

小 T 把喝醉的人分成了好多组,每一组要用一部车把他们送回家睡大觉。

然后呢,每一组可以租用的车子也是不一样的,具体而言,对于第 ii 组,有 TiT_i 种的车子(型号可能相同)来把他们送回去。当然咯,小 T 只需要安排一辆车子就可以送走这一组所有的人了。由于囊中羞射,小 T 一定只会每组安排一辆车。

更具体的,送回家的费用,是所有租用的车子里面,型号最大的和型号最小的车子,型号的差距。(尼玛,你这是啥题面啊,有 TM 啥关系啊)

但是呢 ==,由于喝醉的人是相继的醉,不可能出现如下场景:

“大家一起醉吧。” “好!” 一杯而下,全倒了……

所以呢,这样动态的安排车子,又给小 T 加了不少麻烦。也就是说,小T需要处理如下两个操作:

  1. 有一组人醉倒了。

  2. 询问当前所有醉倒的人送回家的费用。

但是又出现了一个问题。 小 A 说:“你能解决,老子给你 1000W。” 小 T 说:“你还不如把车子全租了。” 小 A 说:“………………” 小 A 思考了一下又说:“既然不能全租,那就来个限定吧,租车的型号必须大于等于 LL。” 小 T 给了小 A 一巴掌……。 “GFS 就能拽?”

输入格式

第一行有一个正整数,nn,表示操作的总数目。

接下来 nn 行,每行首先包含了一个字母 C 或者 Q

如果是 C,则表示,现在有一组人醉倒了,他们需要租车。C 的后面有一个正整数 TiT_i 表示的是这一组有 TiT_i 部车子可以租。接下来有 TiT_i 个数字,分别表示他们可以租的车子的型号。

如果是 Q,则后面有一个限制 LL,表示对于当前所有已经醉的组,算出他们租车的最小费用,并且租车的最小型号是 LL

输出格式

对于每一个 Q 操作,输出最小费用。如果无法安排,请阁下输出 -1

5
C 3 1 5 9
C 3 2 5 11
Q 0
C 3 2 8 19
Q 8

0
3

样例说明

第一问选择 5,55,5

第二问选择 8,9,118,9,111,2,21,2,2 由于限制不能选择。

数据规模与约定

对于100%100\% 的数据,n2×105n\le 2\times 10^5,车子数量总和 5.5×105\le 5.5\times 10^5,所有车子的型号均 0\ge0<109< 10^9。询问的 LL<109<10^9

题目来源

By 佚名提供