Cod sursa(job #1839137)

Utilizator MoleRatFuia Mihai MoleRat Data 2 ianuarie 2017 15:05:05
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
using namespace std;
ifstream fin("oras.in");
ofstream fout("oras.out");
int n;
int mat[210][210];

void re(int n)
{
    if (n <= 1)
        return;
    for (int i = 1; i <= n-2; i++) {
        mat[n][i] = 1;
        mat[i][n-1] = 1;
    }
    mat[n-1][n] = 1;
    re(n-2);
}

void re2()
{
    mat[1][2] = mat[2][3] = mat[3][1] = 1;
    mat[2][4] = mat[4][5] = mat[5][2] = 1;
    mat[1][4] = mat[5][3] = 1;
    mat[6][4] = mat[6][5] = 1;
    mat[4][3] = mat[5][1] = 1;
    mat[6][2] = mat[1][6] = mat[3][6] = 1;

    for (int i = 7; i <= n; i += 2)
    {
        for (int j = 1; j < i; j++)
        {
            mat[j][i] = 1;
            mat[i+1][j] = 1;
        }
        mat[i][i+1] = 1;
    }
}

int main()
{

    fin>>n;
    if (n & 1)
        re(n);
    else {
        if (n < 6) {
            fout<<-1;
            return 0;
        }
        re2();
    }
    for (int i = 1; i <= n; i++)
    {
            for (int j = 1; j <= n; j++)
                fout<<mat[i][j];
        fout<<"\n";
    }

    return 0;
}