Cod sursa(job #1149532)

Utilizator PatrikStepan Patrik Patrik Data 21 martie 2014 23:04:15
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
    #include<cstdio>
    using namespace std;
    #define NMAX 201
    bool a[NMAX][NMAX] ;
    int N ;

    void solve(int N)
    {
        if(N == 3)
        {
            a[1][2] = a[2][3] = a[3][1] = 1;
            return ;
        }
        if(N == 6)
        {
             a[1][2] = a[1][3] = a[1][4] = 1;
                a[2][3] = a[2][4] = a[2][5] = 1;
                a[3][4] = a[3][6] = 1;
                a[4][5] = a[4][6] = 1;
                a[5][1] = a[5][3] = a[5][6] = 1;
                a[6][1] = a[6][2] = 1;
                return ;
        }
        a[N-1][N] = 1;
        for(int i = 1 ; i <= N-2 ; i++)
            a[i][N-1] = a[N][i] = 1;
        solve(N-2);
    }

    int main()
    {
        freopen("oras.in" , "r" , stdin );
        freopen("oras.out" , "w" , stdout );
        scanf("%d" , &N );
        if(N == 4)printf("-1\n");
        else
        {
            solve(N);
            for(int i = 1 ; i <= N ; ++i )
            {
                for(int j = 1 ; j <= N ; ++j )
                    printf("%d" , a[i][j] );
                printf("\n");
            }
        }
        return 0;
    }