P1478 陶陶摘苹果(升级版)
输出结果为7,不知道哪里错了。
#include <stdio.h>
int x[5005],y[5005],z[5005];
int main ()
{
int n,s,a,b,sum=0,temp,count=0;
scanf("%d&d",&n,&s);
scanf("%d%d",&a,&b);
for(int i=0;i<n;i++)
scanf("%d%d",&x[i],&y[i]);
for(int j=0;j<n;j++)
{
if(x[j]<=a+b)
z[sum++]=y[j];
}
for(int i=1;i<sum;i++)
for(int j=0;j<sum-i;j++)
{
if(z[j]>z[j+1])
{
temp=z[j+1];
z[j+1]=z[j];
z[j]=temp;
}
}
for(int i=0;i<sum&&s>=z[i];i++)
{
s-=z[i];
count++;
}
printf("%d",count);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct apple{
int high;
int liqi;
}aa[5001];
bool cmp(apple a,apple b){
return a.liqi<b.liqi;
}
int main(){
int n,s,a,b,ans=0;
cin>>n>>s>>a>>b;
for(int i=0;i<n;i++){
scanf("%d%d",&aa[i].high,&aa[i].liqi);
}
sort(aa,aa+n,cmp);
for(int i=0;i<n;i++){
if(s<=0) break;
if(aa[i].high<=(a+b) && aa[i].liqi<=s){
ans++;
s-=aa[i].liqi;
}
}
cout<<ans<<endl;
return 0;
}
这个咋样?有用记得采纳 呐