Cod sursa(job #194868)

Utilizator ZweisteinAdrian VELICU Zweistein Data 14 iunie 2008 22:41:10
Problema Oras Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <stdio.h>
#define NMAX 201
long sol5[5][5]={
	{0, 0, 0, 0, 1},
	{1, 0, 0, 1, 0},
	{1, 1, 0, 0, 0},
	{1, 0, 1, 0, 0},
	{0, 1, 1, 1, 0}
	};
long sol6[6][6]={
	{0, 0, 0, 0, 1, 1},
	{1, 0, 0, 0, 0, 1},
	{1, 1, 0, 0, 1, 0},
	{1, 1, 1, 0, 0, 0},
	{0, 1, 0, 1, 0, 0},
	{0, 0, 1, 1, 1, 0}
	};
long a[NMAX][NMAX];
int main (void) {
	FILE * fi = fopen("oras.in","rt");
	FILE * fo = fopen("oras.out","wt");

	long n;
	fscanf(fi,"%ld",&n);
	if (n==3) {
	} else if (n==4) {

	} else {
		long solved;
		if (n%2) {
			//forma de baza 6
			for (long i=0; i<6; i++) for (long j=0; j<6; j++) a[i][j]=sol6[i][j];
			solved=6;
		} else {
			//forma de baza 5
			for (long i=0; i<5; i++) for (long j=0; j<5; j++) a[i][j]=sol5[i][j];
			solved=5;
		}
		while (solved<=n) {
			for (long i=0; i<solved; i++) {
				a[i][solved]=1;
				a[i][solved+1]=0;
			};
			for (long j=0; j<solved; j++) {
				a[solved][j]=0;
				a[solved][j+1]=1;
			};
			a[solved][solved]=0;
			a[solved+1][solved+1]=0;
			a[solved][solved+1]=1;
			a[solved+1][solved]=0;
			solved+=2;
		};
	}
	for (long i=0; i<n; i++) {
		for (long j=0; j<n; j++)
			fprintf(fo,"%ld ",a[i][j]);
		fprintf(fo,"\n");
	};

	fclose(fi); fclose(fo);
	return 0;
};