#include<stdio.h>
#include<stdlib.h>
#define N 100001
int main()
{
int n,k,i,j,max=0,sum=0;
long int m;
scanf("%d %ld %d",&n,&m,&k);
int t[n],c[n],num[N]={0};
for(i=0;i<n;i++){
scanf("%d %d",&t[i],&c[i]);
if(t[i]>max)
max=t[i];
num[t[i]]+=c[i];
}
for(i=max;i>k;i--){
sum=0;
for(j=max;j>=i;j--){
sum+=num[j]*(j+1-i);
}
if(sum>m)
break;
}
printf("%d",i);
return 0;
}
换了好几次思路,直接搜索不记录的话只能70,而且要求,所以要设为long int。