Cod sursa(job #712482)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 13 martie 2012 15:18:16
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <string.h>

const int dim = 205;
int N, Q[dim], D[dim];
char T[4][4] = {{"010"},{"001"},{"100"}};
char S[7][7] = {{"011100"},{"001110"},{"000101"},{"000011"},{"101001"},{"110000"}};
char R[dim][dim];

void init ()
{
	int i, j;
	if (N & 1)
	{
		for (i = 0; i < 3; i++)
			for (j = 0; j < 3; j++)
				R[i][j] = T[i][j];
	}
	else
	{
		for (i = 0; i < 6; i++)
			for (j = 0; j < 6; j++)
				R[i][j] = S[i][j];
	}
}

void rez ()
{
	int i, j, k;
	for (i = (N & 1 ? 3 : 6); i < N; i += 2)
	{
		j = i + 1;
		for (k = 0; k < i; k++)
		{
			R[i][k] = R[k][j] = '0';
			R[k][i] = R[j][k] = '1';		
		}
		R[i][j] = '1';
		R[i][i] = R[j][j] = R[j][i] = '0';
	}
}

void afi ()
{
	if (N == 4)
	{
		printf ("-1\n");
		return;
	}	
	int i;
	for (i = 0; i < N; i++)
		printf ("%s\n", R[i]);
}

int main ()
{
	freopen ("oras.in", "r", stdin);
	freopen ("oras.out", "w", stdout);
	
	scanf ("%d", &N);
	init ();
	rez ();
	afi ();
	return 0;
}