救!!!为啥超时了??例题过了

P1319 压缩技术

dongtian @ 2022-11-19 15:03:24

#include<stdio.h>
int main()
{
    int a[20000];
    int m=0,i=0,j=0,k=0,q;
    do
    {
        scanf("%d",&a[i]);
        i++;
        k+=1;   
    }while(getchar()!='\n');
    for(i=0;i<k-1;i++)
    {
        q=a[0];
        if(i%2==1&&i!=0)
        {
            for(j=0;j<a[i];j++)
            {
                printf("0");
                m+=1;
                if(m==q)
                {
                    printf("\n");
                    m=0;
                }
            }
        }
        if(i%2!=1&&i!=0)
        {
            for(j=0;j<a[i];j++)
            {
                printf("1");
                m+=1;
                if(m==q)
                {
                    printf("\n");
                    m=0;
                }

            }
        }

    }

    return 0;
}

by fzy1026 @ 2022-11-19 15:51:34

实际上您样例就会超时(洛谷IDE测试)


by fzy1026 @ 2022-11-19 15:52:52

很可能是读入方法不对

输入样例并不以换行符结尾

建议使用这个:

int c;
while(cin>>c)
{
    //do something
}

亲测可行


by dongtian @ 2022-11-20 08:55:32

    while(scanf("%d",&c)){
        a[i]=c;
    }

@fzy1026 是这样吗,我的是C语言,怎么换行程序不结束啊


by fzy1026 @ 2022-11-20 09:15:24

洛谷评测机的输入是以^Z而非换行结尾的(大概

在本地测试的时候需要手动输入一个^Z(Ctrl + Z)来结束输入


|