Cod sursa(job #1149525)

Utilizator PatrikStepan Patrik Patrik Data 21 martie 2014 22:55:08
Problema Oras Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
    #include<cstdio>
    using namespace std;
    #define NMAX 201
    bool a[NMAX][NMAX] ;
    int N ;

    int main()
    {
        freopen("oras.in" , "r" , stdin );
        freopen("oras.out" , "w" , stdout );
        scanf("%d" , &N );
        if(N == 4)printf("-1\n");
        else
        {
            if(N%2)
            {
                a[1][2] = a[2][3] = a[3][1] = 1;
                for(int i = 5 ; i <= N ; i+=2 )
                {
                    a[i-1][i] = 1;
                    for(int j = 1 ; j <= i-2 ; ++j )
                        a[j][i-1] = a[i][j] = 1;
                }
            }
            else
            {
                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;
                for(int i = 8 ; i <= N ; ++i )
                {
                    a[i-1][i] = 1;
                    for(int j = 1 ; j <= i-2 ; ++j )
                        a[j][i-1] = a[i][j] = 1;
                }
            }
            for(int i = 1 ; i<= N ; ++i )
            {
                for(int j = 1 ; j<= N ; ++j )
                    printf("%d" , a[i][j]);
                printf("\n");
            }
        }
        return 0;
    }