Cod sursa(job #57336)

Utilizator alextheroTandrau Alexandru alexthero Data 1 mai 2007 19:48:58
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <stdio.h>

#define nmax 205

int n,i,j,start;
char a[nmax][nmax];

int main() {
	freopen("oras.in","r",stdin);
	freopen("oras.out","w",stdout);

	scanf("%d",&n);
	if(n == 4) {
		printf("-1\n");
		return 0;
	}
	
	if(n % 2 == 1) {
		start = 3;
		a[1][1] = 0; a[1][2] = 1; a[1][3] = 0;
		a[2][1] = 0; a[2][2] = 0; a[2][3] = 1;
		a[3][1] = 1; a[3][2] = 0; a[3][3] = 0;
	}
	else {
		start = 6;
		a[1][1] = 0; a[1][2] = 1; a[1][3] = 1; a[1][4] = 1; a[1][5] = 0; a[1][6] = 0;
		a[2][1] = 0; a[2][2] = 0; a[2][3] = 1; a[2][4] = 1; a[2][5] = 1; a[2][6] = 0;
		a[3][1] = 0; a[3][2] = 0; a[3][3] = 0; a[3][4] = 1; a[3][5] = 0; a[3][6] = 1;
		a[4][1] = 0; a[4][2] = 0; a[4][3] = 0; a[4][4] = 0; a[4][5] = 1; a[4][6] = 1;
		a[5][1] = 1; a[5][2] = 0; a[5][3] = 1; a[5][4] = 0; a[5][5] = 0; a[5][6] = 1;
		a[6][1] = 1; a[6][2] = 1; a[6][3] = 0; a[6][4] = 0; a[6][5] = 0; a[6][6] = 0;
	}

	for(start += 2;start <= n; start += 2) {
		a[start - 1][start] = 1;
		for(i = 1; i < start - 1; i++) a[i][start] = 0, a[start][i] = 1; 
		for(i = 1; i < start - 1; i++) a[i][start - 1] = 1,a[start - 1][i] = 0;
	}
	
	for(i = 1; i <= n; i++) {
		for(j = 1; j <= n; j++) printf("%d",a[i][j]);
		printf("\n");
	}
	
	return 0;
}