80分求助,最后一个WA

P1478 陶陶摘苹果(升级版)

xxxzh28 @ 2021-08-21 17:14:54


#include<bits/stdc++.h>
using namespace std;
int m,n,a[5000],b[5000],x,y,strength=0,ans=0;
int main(){
    cin>>m>>n;
    cin>>x>>y;
    for(int i=1;i<=m;i++){
        cin>>a[i]>>b[i];
        }
    for(int i=0;i<m;i++){
        for(int j=m;j>=0;j--){
            if(b[j]<b[j-1]){
                swap(a[j],a[j-1]); 
                swap(b[j],b[j-1]);
            }
        }
}
for(int i=1;i<=m;i++){
    if(x+y>=a[i]){
   strength+=b[i];
   ans++;
   if(strength>n)
   break;   
}
}
if(strength==0)
cout<<"0";
else
cout<<(ans-1);
return 0;   
}

by Ninelife_Cat @ 2021-08-21 17:32:18

@xxxzh28

for(int i=0;i<m;i++){
        for(int j=m;j>=0;j--){
            if(b[j]<b[j-1]){
                swap(a[j],a[j-1]); 
                swap(b[j],b[j-1]);
            }
        }

您这一块会数组越界吧


by xxxzh28 @ 2021-08-21 18:18:33

@Ninelife_Cat 改了还是不行啊


#include<bits/stdc++.h>
using namespace std;
long long m,n,a[5000],b[5000],x,y,strength=0,ans=0;
int main(){
    cin>>m>>n;
    cin>>x>>y;
    for(int i=0;i<m;i++){
        cin>>a[i]>>b[i];
        }
    for(int i=0;i<m;i++){
        for(int j=m-1;j>0;j--){
            if(b[j]<b[j-1]){
                swap(a[j],a[j-1]); 
                swap(b[j],b[j-1]);
            }
        }
}
for(int i=0;i<m;i++){
    if(x+y>=a[i]){
   strength+=b[i];
   ++ans;
   if(strength>n){
   break;
   ans--;
}
}
}
if(strength==0)
cout<<"0";
else
cout<<ans;
return 0;   
}

by Ninelife_Cat @ 2021-08-21 18:40:51

@xxxzh28

#include<bits/stdc++.h>
using namespace std;
long long m,n,a[5010],b[5010],x,y,strength=0,ans=0;
int main(){
    cin>>m>>n;
    cin>>x>>y;
    for(int i=1;i<=m;i++){
        cin>>a[i]>>b[i];
        }
    for(int i=1;i<=m;i++){
        for(int j=i-1;j>=1;j--){
            if(b[j]>b[j+1]){
                swap(a[j],a[j+1]); 
                swap(b[j],b[j+1]);
            }
        }
}
for(int i=1;i<=m;i++){
    if(x+y>=a[i]){
   strength+=b[i];
   ++ans;
   if(strength>n){
   ans--;   
   break;
}
}
}
if(strength==0)
cout<<"0";
else
cout<<ans;
return 0;   
}

改成这样过了


by xxxzh28 @ 2021-08-21 18:44:15

@Ninelife_Cat 谢谢大佬


|