QLUzongyuxing @ 2022-01-30 10:39:31
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,s,a,b,x[280],y[100],c=0;
cin>>n>>s;
cin>>a>>b;
for(int i=1;i<=n;i++){
cin>>x[i];
cin>>y[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++){
if(y[j]>y[j+1]){
swap(y[j],y[j+1]);
swap(x[j],x[j+1]);
}
}
}
for(int i=1;i<=n;i++){
if(x[i]<=a+b){
if(s>=y[i]){
s-=y[i];
c++;
}else{
cout<<c<<endl;
return 0;
}
}
}
}
by Natori @ 2022-01-30 11:02:00
@QLUzongyuxing
首先你可以在输入时直接判断哪些苹果能摘,只把能摘的放进数组;
还有就是排序建议直接sort;
然后x、y数组开大点,n<=5000。
by Natori @ 2022-01-30 11:05:39
@QLUzongyuxing 还有有一个致命的问题是你在循环里输出答案。
有一个数据是这样的:
0 0
0 0
答案给的是:
0
但你没有输出。
by Natori @ 2022-01-30 11:07:53
@QLUzongyuxing
建议
by QLUzongyuxing @ 2022-01-30 13:39:05
@chenyiheng 自己改了一下,AC了,十分感谢!!!