64分求助 4 和 6wa了

P1162 填涂颜色

hukkk @ 2021-04-17 18:29:57

#include<bits/stdc++.h>
using namespace std;
int Map[40][40];
int main()
{
    int n,flag=0;
    scanf("%d",&n);
    int f1=0,f2=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>Map[i][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(f1&&Map[i][j]==1)
            {
                f2=j;
            }
            if(!f1&&Map[i][j]==1)
            {
                f1=j; 
            } 
            if(f1&&f2==f1+1)
            {
                f2=0;
                f1=j;
            }
            if(f1&&f2)
            {
                for(int k=f1+1;k<f2;k++)
                {
                    Map[i][k]=2;
                }
                f1=f2;
                f2=0;
            }
        }
        f1=0;
        f2=0;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            printf("%d ",Map[i][j]);
        }
        printf("\n");
    }
    return 0;
} 

兄弟们能帮我看看哪里错了吗


by Argon_Cube @ 2021-04-17 18:34:06

这都能过4个点就离谱


by hukkk @ 2021-04-17 20:19:18

@Unnamed_Cube 兄弟知道哪有问题吗


by happywhite1991 @ 2021-07-05 00:10:25

@hukkk 大兄弟 你这意思是不是一行里,把一中间的0都变2,比如00010011→00012211 这有个问题 万一他是010010010呢?


|