萌新求助,能过第四个点,其他是RE

P1478 陶陶摘苹果(升级版)

YFYONE @ 2019-11-21 00:20:26

#include <iostream>

using namespace std;

int n,s,a,b,xi,yi,k,cnt;

 void fun(int s,int *f,int k){
    int t;
    for(int i=0;i<k;i++){
        for(int j=0;j<k-i;j++){
            if(f[j]>f[j+1]){
                t=f[j];
                f[j]=f[j+1];
                f[j+1]=t;
            }
        }
    }
    for(int i=0;i<k;i++){
        s-=f[i];
        if(s>=0) cnt++;
    }
 }
int main(void){
    cin>>n>>s>>a>>b;
    int f[k];
    for(int i=0;i<n;i++){
        cin>>xi>>yi;
        if(a+b>=xi) f[k++]=yi;
    }
    k--;
    fun(s,f,k);
    cout<<cnt;
    return 0;
}

by l__nf @ 2019-11-21 09:34:27

已改,你看一下

#include <iostream>

using namespace std;

int n,s,a,b,xi,yi,k,cnt;
int f[10086];

void fun(int s,int f[],int k) {
    int t;
    for(int i=0; i<k; i++) {
        for(int j=0; j<k-i; j++) {
            if(f[j]>f[j+1]) {
                t=f[j];
                f[j]=f[j+1];
                f[j+1]=t;
            }
        }
    }
    for(int i=0; i<k; i++) {
        s-=f[i];
        if(s>=0) cnt++;
    }
}
int main() {
    cin>>n>>s>>a>>b;
    for(int i=0; i<n; i++) {
        cin>>xi>>yi;
        if(a+b>=xi) f[k++]=yi;
    }
    k--;
    fun(s,f,k);
    cout<<cnt;
    return 0;
}

by l__nf @ 2019-11-21 09:34:34

@YFYONE


by l__nf @ 2019-11-21 09:37:50

或者是你把f数组放在主函数上面就像这样

......
int f[10001];
int main()
{
......
}

by YFYONE @ 2019-11-21 16:13:38

@l__nf 谢谢大佬,我想问一下,为什么不放到主函数上面会出错。


by l__nf @ 2019-11-21 16:21:41

你没初始化


|