AcWing 5017. 垦田计划
原题链接
简单
作者:
hayate
,
2024-04-24 21:09:54
,
所有人可见
,
阅读 4
//二分所用的天数;
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
int t[N], c[N];
int n, m, k;
bool check(int mid)
{
long long sum = 0;
for(int i = 0; i < n; i ++ )
{
if(t[i] > mid)
{
sum += (t[i] - mid) * c[i];
}
if(sum > m)
{
return false;
}
}
return true;
}
int main()
{
cin >> n >> m >> k;
int r = -1;
for(int i = 0; i < n; i ++ )
{
cin >> t[i] >> c[i];
r = max(r, t[i]);
}
int l = k;
while(l < r)
{
int mid = l + r >> 1;
if(check(mid))
{
r = mid;
}
else
{
l = mid + 1;
}
}
cout << l << endl;
return 0;
}