Blind_Swallow @ 2021-11-23 20:58:32
用结构体+sort+贪心写的。40分WA求助,1,3,5WA。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct apple
{
int x, y;
}p[5005]; //结构体存苹果高度x和摘这个苹果需要的力气y
int cmp(apple x, apple y) //cmp比较函数
{
return x.y < y.y;
}
int n, s, a, b, ans; //苹果数n, 力气s, 椅子高度a, 手最大长度b, 能摘到的个数ans
int main()
{
scanf("%d%d%d%d", &n, &s, &a, &b); //c标准输入输出
//(同:cin >> n >> s >> a >> b;)
for(int i = 1; i <= n; i++)
{
scanf("%d%d", &p[i].x, &p[i].y);
}
sort(p + 1, p + n + 1, cmp); //STL快排, cmp比较函数
for(int i = 1; i <= n; i++)
{
if(p[i].x <= a + b && s >= p[i].y) //判断是否摘得到并且体力足够
{ //能摘到并且体力足够
s -= p[i].y;
ans++;
}
else
{ //摘不到或体力不够
break;
}
}
printf("%d", ans);
return 0;
}
by 剑仙不求人 @ 2021-12-04 13:14:45
break 换
if(s<0){
break;
}else{
continue;
}
by 剑仙不求人 @ 2021-12-04 13:15:36
倒数第六行的