Cod sursa(job #133860)

Utilizator DastasIonescu Vlad Dastas Data 9 februarie 2008 21:24:57
Problema Oras Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>

const int maxn = 202;

FILE *in = fopen("oras.in","r"), *out = fopen("oras.out","w");

int n;
int a[maxn][maxn];

void go(int k)
{
    if ( k <= 1 )
        return;

    go(k-2);
    a[k-1][k] = 1;

    for ( int i = 1; i <= k - 2; ++i )
        a[i][k-1] = 1, a[k][i] = 1;
}

int main()
{
    fscanf(in, "%d", &n);

    if ( n == 4 )
    {
        fprintf(out, "%d\n", -1);
        return 0;
    }

    if ( n % 2 == 1 )
    {
        go(n - 3);
        a[n-1][n] = 1;
        a[n-2][n] = 1;
        a[n-2][n-1] = 1;
        for ( int i = 1; i <= n - 3; ++i )
            a[i][n-2] = 1, a[n][i] = 1;
        for ( int i = 1; i <= n - 4; ++i )
            a[i][n-1] = 1;
        a[n-1][n-3] = 1;
    }
    else
        go(n);

    for ( int i = 1; i <= n; ++i )
    {
        for ( int j = 1; j <= n; ++j )
            fprintf(out, "%d", a[i][j]);
        fprintf(out, "\n");
    }



	return 0;
}