Cod sursa(job #1521198)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 10 noiembrie 2015 00:05:44
Problema Oras Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <cstdio>
using namespace std;

const int DIM = 256;

int A[DIM][DIM], N;

void equal3 ()
{
    A[1][2] = 1;
    A[2][3] = 1;
    A[3][1] = 1;

    return;
}

void equal6 ()
{
    A[1][2] = 1; A[1][4] = 1; A[1][6] = 1;
    A[2][3] = 1; A[2][5] = 1; A[2][6] = 1;
    A[3][1] = 1; A[3][5] = 1; A[4][2] = 1;
    A[4][3] = 1; A[4][5] = 1; A[5][1] = 1;
    A[5][6] = 1; A[6][3] = 1; A[6][4] = 1;

    return;
}

int main ()
{
    freopen ("oras.in" ,"r", stdin );
    freopen ("oras.out","w", stdout);

    scanf ("%d", &N);

    switch (N)
    {
        case 3:{
            equal3();

            break;
        }
        case 4:{
            printf ("-1\n");

            break;
        }
        case 6:{
            equal6 ();

            break;
        }
        default:{

            if (N % 2 == 1)
                equal3 ();
            else
                equal6 ();

            for (int i = (N % 2) ? 5 : 6; i <= N; i += 2)
            {
                A[i-1][i] = 1;

                for (int j = 1; j <= i - 2; j ++)
                    A[j][i-1] = 1;

                for (int j = 1; j <= i - 2; j ++)
                    A[i][j] = 1;
            }
        }
    }

    if (N != 4)
    {
        for (int i = 1; i <= N; i ++)
        {
            for (int j = 1; j <= N; j ++)
                printf ("%d", A[i][j]);

            printf ("\n");
        }
    }

    fclose (stdin );
    fclose (stdout);

    return 0;
}