Chia Điểm
Xem PDFcó quá nhiều điểm bitcoin. Hiện tại, có \(k\) bitcoin. Do đó, sẽ chia bớt cho \(n\) bạn. \(n\) là số lẻ.
Mỗi bạn có các số yêu thích riêng, và mỗi số này nằm trong đoạn \([l_i, r_i]\), và các bạn chỉ đồng ý nhận số bitcoin nằm trong đoạn này. Ví dụ, nếu đoạn yêu thích của là \([1, 2]\) thì chỉ chấp nhận 1 hoặc 2 bitcoin. Gọi dãy \(a_1, a_2, \ldots, a_n\) là dãy bitcoin mà các bạn nhận được từ , muốn trung vị của dãy \(a_1, a_2, \ldots, a_n\) là lớn nhất có thể.
Trung vị của một dãy số có lẻ phần tử được tính như sau:
- Sắp xếp dãy \(a_1, a_2, \ldots, a_n\) thành dãy \(b_1, b_2, \ldots, b_n\).
- Trung vị chính là số \(b[(n+1)/2]\).
Ví dụ, trung vị của \([3\ 2\ 1]\) là \(2\), trung vị của \([3\ 2\ 2]\) là \(2\).
Cho các bạn số \(k\) và các khoảng yêu thích của \(n\) bạn, hãy in ra trung vị lớn nhất có thể đạt được. Đương nhiên không được dùng quá \(k\) bitcoin. Dữ liệu đảm bảo \(\sum l_i \leq k\).
Input
- Dòng đầu tiên chứa 1 số nguyên dương \(t\) là số truy vấn.
- Mỗi truy vấn có dạng sau:
- Dòng đầu chứa 2 số nguyên dương \(n\) và \(k\).
- \(n\) dòng tiếp theo, mỗi dòng chứa 2 số nguyên dương \(l_i\), \(r_i\) là đoạn yêu thích của bạn \(i\).
Output
- Một số nguyên là giá trị trung vị lớn nhất.
Example
Test 1
Input
1
3 6
1 2
2 3
3 4
Output
2
Note
Ở ví dụ 1, chỉ có duy nhất một cách chia bitcoin là \([1\ 2\ 3]\). Trung vị của \([1\ 2\ 3]\) là 2.
Test 2
Input
1
3 100000
1 2
2 3
3 4
Output
3
Note
Ở ví dụ 2, có thể chia thành \([2\ 3\ 3]\) hoặc \([1\ 3\ 3]\) hoặc \([2\ 3\ 4]\) hoặc \([1\ 3\ 4]\). Trung vị của các dãy đó đều là 3.
Giới hạn
- Trong tất cả các test, \(\sum n \leq 2 \cdot 10^5\) và \(k \leq 2 \cdot 10^{14}\).
- \(49\%\) test có \(1 \leq n, l_i, r_i \leq 100\), \(1 \leq t \leq 100\).
- \(51\%\) test có \(1 \leq n \leq 2 \cdot 10^5\), \(a_i \leq 10^9\) và \(1 \leq t \leq 10^5\).
Bình luận