Cod sursa(job #3187944)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 31 decembrie 2023 15:26:34
Problema Oras Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
//Ilie Dumitru
#include<cstdio>
const int NMAX=256;

int N;
char mat[NMAX][NMAX];

void solve(int N)
{
	if(N==3)
		mat[0][1]=mat[1][2]=mat[2][0]='1';
	else if(N==6)
	{
		int i;

		for(i=0;i<5;++i)
			mat[i][(i+1)%5]=mat[i][(i+2)%5]='1';
		mat[5][0]=mat[5][1]=mat[2][5]=mat[3][5]=mat[4][5]='1';
	}
	else
	{
		int i;

		for(i=0;i<N-2;++i)
		{
			mat[i][N-2]='1';
			mat[N-1][i]='1';
		}
		mat[N-2][N-1]='1';

		solve(N-2);
	}
}

int main()
{
	FILE* f=fopen("oras.in", "r"), *g=fopen("oras.out", "w");
//	FILE* f=stdin, *g=stdout;
	int i, j;

	fscanf(f, "%d", &N);
	if(N!=4)
	{
		for(i=0;i<N;++i)
			for(j=0;j<N;++j)
				mat[i][j]='0';
		solve(N);
		for(i=0;i<N;++i)
			fprintf(g, "%s\n", mat[i]);
	}
	else
		fprintf(g, "-1\n");

	fclose(f);
	fclose(g);
	return 0;
}