202303-t2 垦田计划

发布时间 2023-03-25 13:47:30作者: __int128
 1 #include<stdio.h>
 2 #define N 100010
 3 int n,m,k;
 4 int t[N],c[N];
 5 int check(int mid){
 6     int p=m;
 7     for(int i=1;i<=n;i++)if(mid<t[i]){
 8         if(mid<k)return 0;
 9         if(1ll*(t[i]-mid)*c[i]<=p)p-=(t[i]-mid)*c[i];
10         else return 0;
11     }
12     return p>=0;
13 }
14 int main(){
15     scanf("%d%d%d",&n,&m,&k);
16     for(int i=1;i<=n;i++)
17         scanf("%d%d",t+i,c+i); 
18     int l=0,r=100000;
19     while(l<=r){
20         int mid=(l+r)>>1;
21         if(check(mid))r=mid-1;
22         else l=mid+1;
23     }
24     printf("%d\n",l);
25     return 0;
26 }