问题 4738 --发工资啦

4738: 发工资啦★★

时间限制: 3 Sec  内存限制: 256 MB
提交: 139  解决: 67
[提交][状态][命题人:]

题目描述

你是一家大企业的负责人. n个人为你工作, 其中n是奇数 (n不能被2整除).

你必须给你的员工发工资最初, 你有s元,i个员工应该得到的工资范围为li元到ri元. 你必须以一种方式分配工资使中值工资达到可能的最大值.

为了找到一个奇数长度的序列的中值你必须对它进行排序,并在排序后取中间位置的元素.

例如: 序列[5,1,10,17,6]的中位数是6,

序列[1,2,1]的中位数1.

保证你有足够的钱支付最低工资, 即l1+l2+⋯⋯+ln≤s.

注意你不必把所有的钱都花在薪水上.

你必须回答t组测试.

输入

第一行1个整数t(1≤t≤2*105), 代表测试用例个数.

第一行分别为2个整数n和s(1≤n<2*105,1≤s≤2*1014), 分别代表企业雇员人数和奖金. n不能被2整除.

下面n行包含每个员工工资范围信息. 即i行包含两个整数liri(1≤li≤ri≤109).

保证所有n之和不超过2*105.

也保证你有足够的钱支付最低工资给每个员工,即所有的li之和小于等于s 

输出

对于每个测试用例打印一个整数——可以获得的最大中值工资.

样例输入
Copy
3
3 26
10 12
1 4
10 11
1 1337
1 1000000000
5 26
4 4
2 4
6 8
5 6
2 7
样例输出
Copy
11
1337
6

提示

在第一个测试用例中, 您可以按如下方式分配工资:sal1=12,sal2=2,sal3=11 (sali是第i个员工的工资). 那么工资中11.

在第二个测试用例中, 您必须向唯一的员工支付1337元.

在第三个测试用例中, 你可以按如下方式分配工资:

sal1=4,sal2=3,sal3=6,sal4=6,sal5=7.那么中值工资是6.

来源

[提交][状态]