Cod sursa(job #1765662)

Utilizator mariakKapros Maria mariak Data 26 septembrie 2016 21:38:16
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <bits/stdc++.h>
#define Nmax 202
FILE *fin  = freopen("oras.in", "r", stdin);
FILE *fout = freopen("oras.out", "w", stdout);

using namespace std;
int n, M[Nmax][Nmax], s;
void write()
{
    for(int i = 1; i <= n; ++ i)
    {
        for(int j = 1; j <= n; ++ j)
            printf("%d", M[i][j]);
        printf("\n");
    }
}
int main()
{
    scanf("%d", &n);
    if(n == 4)
    {
        printf("-1\n");
        exit(0);
    }
    if(n % 2)
    {
        M[1][2] = M[2][3] = M[3][1] = 1;
        s = 5;
        if(n == 3)
        {
            write();
            exit(0);
        }
        s = 5;
    }

    if(!(n % 2))
    {
        M[1][2] = M[1][3] = M[1][5] = 1;
        M[2][4] = M[2][5] = M[2][6] = 1;
        M[3][2] = M[3][4] = M[3][6] = 1;
        M[4][1] = M[4][6] = 1;
        M[5][3] = M[5][4] = 1;
        M[6][1] = M[6][5] = 1;
        if(n == 6)
        {
            write();
            exit(0);
        }
        s = 8;
    }
    for(int i = s; i <= n; i += 2)
    {
        M[i - 1][i] = 1;
        for(int j = 1; j < i - 1; ++ j)
            M[j][i - 1] = M[i][j] = 1;
    }
    write();


    return 0;
}