#E0013. 最大化中位数

最大化中位数

题目描述

对于一个长度为奇数的数列,我们称它的 中位数 为数列中所有元素从小到大排序后中间的那个数。比如:

  • 数列 {5}\{5\} 的中位数是 55
  • 数列 {1,3,5}\{1, 3, 5\} 的中位数是 33
  • 数列 {1,2,2,7,9}\{1, 2, 2, 7, 9\} 的中位数是 22
  • 数列 {3,5,8,9,9,11,12}\{3, 5, 8, 9, 9, 11, 12\} 的中位数是 99

现在给你两个整数 nnss1n<21051 \le n \lt 2 \cdot 10^5nn 为奇数,1s210141 \le s \le 2 \cdot 10^{14})。

你需要构造一个长度为 nn 的数列 a1,a2,,ana_1, a_2, \ldots, a_n,要求所有元素之和不超过 ss(即 i=1nais\sum\limits_{i=1}^n {a_i} \le s),且要求对于任意 1in1 \le i \le n,均有 liairil_i \le a_i \le r_i 成立。

在此条件下你希望数列 aa 的中位数最大。

求:能够构造的满足条件的数列的中位数的最大值。

输入格式

输入包含多组测试数据。输入的第一行包含一个整数 t(1t1000)t(1 \le t \le 1000),表示测试数据组数。

每组测试数据的第一行包含两个整数 nnss1n2105,1s210141 \le n \le 2 \cdot 10^5, 1 \le s \le 2 \cdot 10^{14})。

接下来 nn 行,第 ii 行包含两个整数 lil_irir_i1liri1091 \le l_i \le r_i \le 10^9)。

数据保证:

  • 所有测试数据的 nn 之和不超过 21052 \cdot 10^5
  • 每组测试数据的 i=1nlis\sum\limits_{i=1}^n {l_i} \le s(即没组测试数据都存在合法的解)

输出格式

对于每组测试数据,输出一行,包含一个整数,表示能够得到的最大的满足条件的中位数。

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
11
1337
6

说明/提示

样例解释

第一组测试数据:a={12,2,11}a = \{ 12, 2, 11 \},中位数为 1111
第二组测试数据:a={1337}a = \{ 1337 \},中位数为 13371337
第三组测试数据:a={4,3,6,6,7}a = \{ 4,3,6,6,7 \},中位数为 66

数据规模与约定

  • 对于 30%30\% 的测试数据,t10,n<20,ri100,s2000t \le 10, n \lt 20, r_i \le 100, s \le 2000
  • 对于 60%60\% 的测试数据,t100,n<2000,ri106,s2109t \le 100, n \lt 2000, r_i \le 10^6, s \le 2 \cdot 10^9
  • 对于 100%100\% 的测试数据,1t1000,1n<21051 \le t \le 1000, 1 \le n \lt 2 \cdot 10^5nn 为奇数, 1liri109,i=1nais210141 \le l_i \le r_i \le 10^9, \sum\limits_{i=1}^n {a_i} \le s \le 2 \cdot 10^{14},且所有测试数据的 nn 之和不超过 21052 \cdot 10^5.