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 谢谢大佬