Cod sursa(job #1211974)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 23 iulie 2014 16:37:26
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <cstdio>

#define NMAX 207

using namespace std;

char Ans[NMAX][NMAX];
int n;

void Back(int k){
    if(k == 3){
        Ans[1][2] = Ans[2][3] = Ans[3][1] = '1';
        return;
    }
    if(k == 6){
        Ans[1][2] = Ans[1][4] = Ans[1][6] = '1';
        Ans[2][3] = Ans[2][5] = Ans[2][6] = '1';
        Ans[3][1] = Ans[3][5] = Ans[4][2] = '1';
        Ans[4][3] = Ans[4][5] = Ans[5][1] = '1';
        Ans[5][6] = Ans[6][3] = Ans[6][4] = '1';
        return;
    }
    Ans[k - 1][k] = '1';
    for(int i = 1; i <= k - 2; ++i)
        Ans[i][k - 1] = Ans[k][i] = '1';
    Back(k - 2);
}

int main(){
    freopen("oras.in", "r", stdin);
    freopen("oras.out", "w", stdout);
    scanf("%d", &n);
    if(n == 4){
        printf("-1\n");
        return 0;
    }
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= n; ++j)
            Ans[i][j] = '0';
    Back(n);
    for(int i = 1; i <= n; ++i, printf("\n"))
        for(int j = 1; j <= n; ++j)
            printf("%c", Ans[i][j]);
    return 0;
}