Cod sursa(job #21449)

Utilizator azotlichidAdrian Vladu azotlichid Data 23 februarie 2007 16:27:27
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;

#define FOR(i, a, b) for (i = (int)(a); i <= (int)(b); i ++)
#define CLEAR(x)     memset(x, 0, sizeof(x))

#define NMAX 202

int N, i, j, p;
char a[NMAX][NMAX];
const char t[3][4] = {"010", "001", "100"};
const char s[6][7] = {"011100","001110","000101","000011","101001","110000"};

int main(void)
{
    freopen("oras.in", "r", stdin);
    freopen("oras.out", "w", stdout);
    scanf("%d", &N);

    memset(a, '0', sizeof(a));
    if (N == 4) { printf("-1\n"); return 0; }
    if (N & 1)
    {
        FOR(i, 0, 2) memcpy(a[i], t[i], p = 3);
    }
    else
    {
        FOR(i, 0, 5) memcpy(a[i], s[i], p = 6);
    }

    for (; p < N; p += 2)
    {
        FOR(i, 0, p - 1) a[i][p] = '1', a[p + 1][i] = '1';
        a[p][p + 1] = '1';
    }

    FOR(i, 0, N - 1)
    {
        FOR(j, 0, N - 1)
            printf("%c", a[i][j]);
        printf("\n");
    }
    return 0;
}