Cod sursa(job #1509526)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 24 octombrie 2015 00:32:14
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>

#define nmax 205
using namespace std;
int n,v[nmax][nmax],a[nmax];

void odd()
{
    int i,j;
    for (i=1;i<=n;i++)
        for (j=i+1;j<=n;j++) {
            if ((j-i)%2==1)
                v[i][j]=1;
            v[j][i]=1-v[i][j];
        }
}
void even()
{
    int i,j;
    v[1][5]=v[1][6]=1;
    v[2][1]=v[2][4]=1;
    v[3][1]=v[3][2]=v[3][6]=1;
    v[4][1]=v[4][3]=1;
    v[5][2]=v[5][3]=v[5][4]=1;
    v[6][2]=v[6][4]=v[6][5]=1;
    for (i=6;i+2<=n;i+=2) {
        v[i+1][i+2]=1;
        for (int j=1;j<=i;j++)
            v[j][i+1]=v[i+2][j]=1;
    }
}
int main()
{
    freopen("oras.in","r",stdin);
    freopen("oras.out","w",stdout);
    scanf("%d",&n);
    int i,j;
    if (n==4) {
        printf("-1\n");
        return 0;
    }
    if (n%2==1)
        odd();
    else
        even();


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

    return 0;
}