数组到底要开多少

P1478 陶陶摘苹果(升级版)

女神苏小糖。 @ 2019-07-15 08:40:04

为什么数组要开到1000多 最后一个测试点才过 按照题目开就是278


by ViXpop @ 2019-07-15 08:46:15

看看代码?


by ViXpop @ 2019-07-15 08:47:20

@女神苏小糖。 题目中给的数据是5000啊


by 女神苏小糖。 @ 2019-07-15 08:52:41

#include<cstdio>
using namespace std;
int n;
int main() {
int a,b,s,xi[5050],yi[10005],sum=0,c=0;
scanf("%d%d",&n,&s);
scanf("%d%d",&a,&b);
for(int i=0; i<n; i++) {
scanf("%d %d",&xi[i],&yi[i]);
}
yi[n]=999999;
for(int i=0; i<n; i++) {
    c=c+yi[i];
}
if(s>=c) {
    for(int i=0; i<n; i++)
        if(a+b==xi[i])
            sum++;
} else if(s-c<0) {
for(int j=0; j<n; j++) {
    for(int i=0; i<n; i++) {
        int m,f,m1,f1;
        m=yi[i];
        m1=xi[i];
        f=yi[i+1];
        f1=xi[i+1];
        if(m>f) {
        yi[i]=f;
        xi[i]=f1;
        yi[i+1]=m;
        xi[i+1]=m1;
            }
        }
    }
    for(int i=0; i<n; i++) {
if(a+b>=xi[i]&&s-yi[i]>=0) {
        s=s-yi[i];
        sum++;
        }
    }
}
printf("%d",sum);

}


by 女神苏小糖。 @ 2019-07-15 08:53:35

@ViXpop s不是要<=1000的吗


by ViXpop @ 2019-07-15 08:54:31

n给的范围是5000


by ViXpop @ 2019-07-15 08:55:06

@女神苏小糖。 不开到5000以上你的xi,yi数组根本存不下


by 女神苏小糖。 @ 2019-07-15 08:55:16

@ViXpop 大哥 我错了 我懂了懂了


by 拜____仁 @ 2019-07-15 09:06:58

炸天帮吃瓜群众


by WuHong20050324 @ 2019-07-15 09:26:20

吃瓜群众


by VTloBong @ 2019-07-17 10:21:53

希望更丰富的展现?使用Markdown


| 下一页