求调,C语言,新手

P1478 陶陶摘苹果(升级版)

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 好励志!(自我惭愧了)


|