CF161B Discounts
题目描述
超市进行优惠活动,顾客如果在一架购物车中放上一个凳子,他就可以半价买掉这架购物车里最便宜的商品(一架购物车中只能让一个东西半价)。
现在$\mathrm{Polycarpus}$要用$k$架购物车(容量无限,但不能有空车)装要买的$n$件商品,里面有一些是凳子。$\mathrm{Polycarpus}$希望用最少的钱来买这些东西。
输入格式
第一行两个整数$n$、$k$;
第$2$行至第$n+1$行,每行两个整数$c_i$、$t_i$,其中$c_i$表示商品$i$的价格,$t_i$表示类型($1$表示它是凳子,$2$表示它不是凳子)
输出格式
第一行输出一个**一位小数**,表示折扣之后最少需要付的价格。
接下来的kkk行,每行开头输出一个整数$a_i$表示购物车$i$中商品的数量,后面跟着$a_i$个整数$b_1,b_2,...,b_j,...,b_{a_i}$表示商品的编号($1\leq b_j\leq n$)。
方案可能有很多,输出其中一种即可。购物车和商品的输出顺序不作要求。
说明/提示
在样例$1$中,购物车有$2$架,其中一架装商品$1$(凳子)和$2$(其他),另一架装商品$3$(凳子),这样安排便可以使价格最低。
对于$100\%$的数据,$1\leq n,k\leq 10^3$,$1\leq c_i\leq 10^9$,$1\leq t_i\leq 2$。