Xiang @ 2019-02-11 21:22:34
#include<bits/stdc++.h>
#define FOR(i,l,r) for(int i=1;i<=r;i++)
using namespace std;
int main(){
int n,s,a,b,t=0; cin>>n>>s;cin>>a>>b;
int xi[n+10],yi[n+10];
for(int i=1;i<=n;i++) {cin>>xi[i]>>yi[i];}
sort(yi+1,yi+n);
for(int m=1;m<=n;m++)
{
if(s<yi[m]&&t!=0) {cout<<t-1;return 0;}
else if(a+b>=xi[m]) {t=t+1;s-=yi[m];}
else continue;
}
cout<<t;
return 0;
}
by t162 @ 2019-02-11 21:24:39
大佬您的FOR是用来干嘛的QwQ
by Xiang @ 2019-02-11 21:27:02
@Bambusoideae orz 看一个dalao弄的但怕调的时候麻烦...
by Xiang @ 2019-02-11 21:29:04
@Bambusoideae 大佬帮看看呗QAQ
by cindy2007 @ 2019-02-11 21:35:31
@Xiang 您sort是从1开始的吧,后面是yi+n+1
by t162 @ 2019-02-11 21:35:38
@Xiang 并不是剩下力气小于当前苹果的所需力气就要结束程序的。
by t162 @ 2019-02-11 21:35:56
万一后面还可以摘呢?
by cindy2007 @ 2019-02-11 21:42:59
而且您for里的判断是基于高度能摘到的情况下,才可以执行的。
也就是:
if (高度够)
{
if (力气够)
{
t++;
剩余力气减去用的力气
}
}
by Xiang @ 2019-02-11 21:50:09
@cindy2007 嗯嗯!谢谢~
by Xiang @ 2019-02-11 21:50:29
@Bambusoideae 谢谢谢谢!
by Xiang @ 2019-02-11 21:51:05
好像排完序xi和yi序号对不上...我再改改