Cod sursa(job #157961)

Utilizator sealTudose Vlad seal Data 13 martie 2008 13:15:27
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
#define Nm 256
char A[Nm][Nm];
int n;

void read()
{
    freopen("oras.in","r",stdin);
    scanf("%d",&n);
}

void solve()
{
    int i,j;

    if(n==4)
        return;

    for(i=0;i<n;++i)
        for(j=0;j<n;++j)
            A[i][j]='0';

    A[0][1]=A[1][2]=A[2][0]='1';
    if(n&1)
        j=3;
    else
    {
        A[3][4]=A[4][5]=A[5][3]='1';
        A[0][3]=A[1][5]=A[2][4]='1';
        A[3][1]=A[4][0]=A[5][2]='1';
        A[0][5]=A[1][4]=A[2][3]='1';
        j=6;
    }

    for(;j<n;j+=2)
    {
        for(i=0;i<j;++i)
            A[i][j]=A[j+1][i]='1';
        A[j][j+1]='1';
    }
}

void write()
{
    int i;

    freopen("oras.out","w",stdout);
    if(n==4)
    {
        printf("-1\n");
        return;
    }
    for(i=0;i<n;++i)
        printf("%s\n",A[i]);
}

int main()
{
    read();
    solve();
    write();
    return 0;
}