很明显能想到二分t,然后问题的关键在于,二分了t之后怎么算出在当前t下的最大值,如果直接用sort肯定会爆,这里可以用另一个函数:nth_element,这个函数的用法跟sort差不多,但是多了一个参数,它的作用是在指定的1-n区间内把m位排好序,然后m左边的都比m小(假设是从小到大排序),右边都比m大,但是并不是有序的,也就是如果m是第三位,那第二位可能比第一位小,但是它们都比m位小,所以放在了前面,这个函数的时间复杂度是O(n),这样就能用二分过
#include<bits/stdc++.h>
using namespace std;
long long k[1000086],b[1000086],h[1000086];
bool cmp(long long x,