flashfear @ 2024-11-02 20:53:55
错了第4个测试点。 我的想法是取有效高度的数据进num数组,再找最小力气计算。
#include<stdio.h>
int main(){
int n,s,a,b,j=1;
int count=0,x,y;
scanf("%d%d%d%d",&n,&s,&a,&b);
int num[5001][2]={0};
for(int i=1;i<=n;i++){
scanf("%d%d",&x,&y);
if(x<=(a+b)){
num[j][0]=x;
num[j][1]=y;
j++;
}
}
j--;
while(1){
int min=1;
for(int i=1;i<=j;i++){
if(num[min][1]>num[i][1])
min=i;
}
if(s>=num[min][1]&&num[min][1]!=999){
s-=num[min][1];
count++;
num[min][1]=999;
}else break;
}
printf("%d",count);
return 0;
}
by c22j33c43 @ 2024-11-02 21:19:20
。。。假如,树上一个苹果都没有呢? 你的代码就错了(n==0了还输出个1)!
by c22j33c43 @ 2024-11-02 21:21:18
还有你要学排序,这样太慢了(要反复枚举多次)
by flashfear @ 2024-11-02 21:50:24
@c22j33c43
非常感谢,过了
因为我是新生才有人生第一台电脑一个半月,所以确实啥也不会,我会加油学的
卷的尽头是更卷(doge
by c22j33c43 @ 2024-11-03 08:07:54
@flashfear 好励志!(自我惭愧了)