为什么不过啊,我这个试了n遍,都是可以的,有没有大佬帮助一下,找不到错误例子
查看原帖
为什么不过啊,我这个试了n遍,都是可以的,有没有大佬帮助一下,找不到错误例子
125152
LeoLoveTl楼主2023/2/4 20:39

我的方法也是数1,然后把每行的数存起来,每一行数的数量存起来,然后输出的时候,遇到1,该行能连几个1,就把后边的连续改成1就行。

#include <stdio.h>
#include <string.h>
int main(){
    int T,n,i,j,k;
    int a[10]={0},b[10001]={0},c[10]={0},x=0,y=0,flag=0;
    scanf("%d",&T);
    for(i=0;i<T;i++){
        scanf("%d",&n);
        c[x]=n;
        for(j=y;j<y+n;j++){
            scanf("%d",&b[j]);
            a[x]+=b[j];
        }
        y+=n;
        x++;
    }
    y=0;
    for(i=0;i<T;i++){
            printf("%d\n",a[i]);
        for(j=y;j<y+c[i];j++){
            if(flag==0 && b[j]==1){
                flag=1;
                for(k=0;k<a[i];k++){
                    b[j+k]=1;
                }
            }
            printf("%d",b[j]);
            if(j!=y+c[i]) printf(" ");
        }
        y+=c[i];
        printf("\n");
        flag=0;
    }
}

2023/2/4 20:39
加载中...