Kuangxirui @ 2024-05-28 12:46:43
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,s,ans=0;
int x,y;
int a[10010],b[10010];
cin>>n>>s>>x>>y;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(a[i]<a[j]){
swap(a[i],a[j]);
swap(b[i],b[j]);
}
}
}
for(int i=1;i<=n;i++){
//cout<<a[i]<<" "<<b[i]<<endl;
if(a[i]<=x+y&&s-b[i]>=0){
ans++;
s=s-b[i];
}
}
cout<<ans;
return 0;
}
我の贪心策略:把花费力气小的往前,如果身高不足就摘下一个。
但是不知道为什么WA了两个点
by Justin_love_coding @ 2024-05-28 13:45:03
手写冒泡排序?
by _QWQ_TAT_ @ 2024-05-28 13:47:35
@Kuangxirui 你这个是按高度排序,不是力气
by Kuangxirui @ 2024-05-29 12:23:10
oh,悟了,谢谢大佬
by Kuangxirui @ 2024-05-29 12:29:08
@_QwQTAT
by Kuangxirui @ 2024-05-29 12:29:35
已关注