Cod sursa(job #899341)

Utilizator Catah15Catalin Haidau Catah15 Data 28 februarie 2013 14:03:37
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

#define maxN 205

int A[maxN][maxN];

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

    int N;
    scanf ("%d", &N);

    if (N == 4)
    {
        printf ("-1");
        return 0;
    }

    if (N % 2)
    {
        A[1][2] = A[2][3] = A[3][1] = 1;

        for (int i = 5; i <= N; i += 2)
        {
            for (int j = 1; j <= i - 2; ++ j) A[j][i - 1] = A[i][j] = 1;
            A[i - 1][i] = 1;
        }
    }
    else
    {
        A[1][2] = A[1][4] = 1;
        A[2][3] = A[2][4] = 1;
        A[3][1] = A[3][6] = 1;
        A[4][3] = A[4][5] = A[4][6] = 1;
        A[5][1] = A[5][2] = A[5][3] = 1;
        A[6][1] = A[6][2] = A[6][5] = 1;

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

    for (int i = 1; i <= N; ++ i)
    {
        for (int j = 1; j <= N; ++ j) printf ("%d", A[i][j]);
        printf ("\n");
    }

    return 0;
}