>Description
>解题思路
根据题意——可想而知,小X是不可能往回走的。所以最好建一个结构体储存xi和ti,按照x从小到大排序。
然后利用贪心算法:能AK就AK,不然就直接输出。
>代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct ooo
{
long long c; int t;
}a[100005];
long long m,sum;
int n,ans;
bool lil(ooo aa,ooo bb){return aa.c<bb.c;}
int main()
{
scanf("%d%lld",&n,&m);
for(int i=1;i<=n;i++)
scanf("%lld%d",&a[i].c,&a[i].t);
sort(a+1,a+1+n,lil); //排序
sum=0; //sum记录小X前i个地点看题用的时间(不计走到第i点)
for(int i=1;i<=n;i++)
{
if(sum+a[i].c>m) {printf("%d",ans); return 0;} //+a[i].c——加上走到第i点
else sum+=a[i].t;
ans++; //累加AK数
}
return 0;
}