_tourist @ 2019-02-16 16:41:56
#include<iostream>
using namespace std;
int n,s,a,b,ans=0,t1,t2;
int xi[5010],yi[5010];
int main(){
cin>>n>>s>>a>>b;
a+=b;
for(int i=1;i<=n;i++)
cin>>xi[i]>>yi[i];
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++){
if(yi[i]>yi[j]){
t1=xi[i],t2=yi[i];
xi[i]=xi[j],yi[i]=yi[j];
xi[j]=t1,yi[j]=t2;
}
}
for(int i=1;i<=n;i++){
if(xi[i]<=a&&yi[i]<=s){
ans++;
s-=yi[i];
}
}
cout<<ans;
return 0;
}
by Courteli @ 2019-02-16 17:50:58
不如看看第二个题解
题解
逃~
by 花园Serena @ 2019-02-16 17:57:41
排序的问题吧
by 花园Serena @ 2019-02-16 17:58:39
哦...不是
by 花园Serena @ 2019-02-16 18:06:11
这是题解吧老哥...不过你60分的那个我看了
只要把排序里的 x1[i]>x2[k]改成x2[i]>x2[k]应该就好了
@Ling2
by 花园Serena @ 2019-02-16 18:12:18
因为你那一段的程序的意思应该是将x和x2按x2从小到大排序...所以只能比较x2。而你却比较了x2与x1两个与排序没有关系的数组...自然会wa掉,再说了,看题解也要理解吧,像你这样是不行的