Cod sursa(job #844984)

Utilizator Theorytheo .c Theory Data 30 decembrie 2012 02:57:33
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
#define NMAX 202
using namespace std;

ifstream fin("oras.in");
ofstream fout("oras.out");

int N, G[NMAX][NMAX];

void solve(int N) {
    if(N == 3) {
        G[1][2] = G[2][3] = G[3][1] = 1;
        return ;
    }
    if(N == 4 ){
        return ;
    }
    if(N == 6){
        G[1][2] = G[1][3] = G[1][4] = G[5][1] = G[6][1] = 1;
        G[2][3] = G[2][4] = G[2][5] = G[6][2] = 1;
        G[3][4] = G[5][3] = G[3][6] = 1;
        G[4][5] = G[4][6] = 1;
        G[5][6] = 1;
        return ;
    }
    solve(N - 2);
    G[N - 1][N] = 1;
    for(int i = 1; i < N - 1; i++)
        G[i][N - 1] = G[N][i] = 1;
    return ;
}

void read() {
    fin >> N;
}

int main() {

    read();

    if(N == 4)
        fout << -1;
    else
        solve(N);
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= N; j++)
            fout << G[i][j] ;
        fout <<'\n';
    }
    return 0;
}