Tokitsukaze and Order Food Delivery
题号:NC249004
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

外卖平台中共有 n 家店,第 i 家店上架了 k_i 个菜品,每个菜品都有一个价格 v_{i,j}

一到吃饭时间,Tokitsukaze 就会烦恼该点什么外卖。她只想选择一家店点一份菜品,因为点太多吃不完。

每家店都能领取一个店铺红包:菜品价格满 x_i 元可以减 y_i 元。

由于 Tokitsukaze 是外卖平台的VIP用户,除了店铺红包,她还可以领取一张菜品价格满 a 元减 b 元的VIP红包。

店铺红包与VIP红包可以同时使用,并且在判断是否能使用红包时,看的是菜品的原价。举个例子:Tokitsukaze 下单了一份价格为 v 的菜品,v \geq x 并且 v \geq a,Tokitsukaze 只需要花费 v-y-b 元钱(注意她的消费不可能为负,请留意样例解释)。

Tokitsukaze 想尽可能降低吃饭的开销,请问她的这顿饭至少需要花费多少元。

输入描述:

第一行包含一个整数 T (1 \leq T \leq 10^5) --- 测试数据的组数。

对于每组测试数据:

第一行包含三个整数 n, a, b (1 \leq n \leq 10^5, 1 \leq b \leq a \leq 10^9) --- 外卖平台中共有 n 家店,以及 Tokitsukaze 领取到的满 a 元减 b 元的VIP红包。

接下来 2 \cdot n 行:

2 \cdot i - 1 行包含三个整数 k_i, x_i, y_i (1 \leq k \leq 10^5, 1 \leq y \leq x \leq 10^9) --- 第 i 家店上架了 k_i 个菜品,以及店铺红包是满 x_i 元可以减 y_i 元。

2 \cdot i 行包含 k_i 个整数 v_{i,1}, v_{i,2}, \ldots, v_{i,k_i}, (1 \leq v_{i,j} \leq 10^9) --- 每个菜品的价格。

数据保证 \sum k \leq 10^5

输出描述:

对于每组测试数据,输出一行,每行包含一个整数 --- Tokitsukaze 的这顿饭的最小花费。
示例1

输入

复制
3
2 20 5
2 30 20
25 35
1 15 5
18
2 20 5
2 30 20
14 18
1 15 5
13
1 20 10
1 35 30
35

输出

复制
10
13
0

说明

样例1:

第一组测试数据:

假设 Tokitsukaze 选择第 1 家店的第 1 个菜品,可以使用VIP红包,最后的花费是 25-5=20 元。
假设 Tokitsukaze 选择第 1 家店的第 2 个菜品,可以使用店铺红包和VIP红包,最后的花费是 35-20-5=10 元。
假设 Tokitsukaze 选择第 2 家店的第 1 个菜品,可以使用店铺红包,最后的花费是 18-5=13 元。

所以选择第 1 家店的第 2 个菜品花费最小,花费 10 元。

第二组测试数据:

不管选择哪家店的哪个菜品,都无法使用任何红包,所以选择第 2 家店的第 1 个菜品花费最小,花费 13 元。

第三组测试数据:

白嫖!但要注意答案不能是负的,总不能吃个饭让平台倒贴你钱吧(