Cod sursa(job #712540)

Utilizator ChallengeMurtaza Alexandru Challenge Data 13 martie 2012 16:13:46
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;

const char InFile[]="oras.in";
const char OutFile[]="oras.out";
const int MaxN=256;

ifstream fin(InFile);
ofstream fout(OutFile);

int N;
char A[MaxN][MaxN];

int main()
{
	fin>>N;
	fin.close();

	if(N==4)
	{
		fout<<"-1";
	}
	else
	{
		if(N&1)
		{
			A[1][2]=1;
			A[2][3]=1;
			A[3][1]=1;

			for(register int i=3;i<=N;i+=2)
			{
				A[i-1][i]=1;
				for(register int j=1;j<=i-2;++j)
				{
					A[j][i-1]=1;
					A[i][j]=1;
				}
			}
		}
		else
		{
			A[1][2]=1;
			A[2][3]=1;
			A[3][1]=1;

			A[4][5]=1;
			A[5][6]=1;
			A[6][4]=1;

			A[1][4]=1;
			A[2][6]=1;
			A[3][5]=1;

			A[4][2]=1;
			A[5][1]=1;
			A[6][3]=1;

			A[4][3]=1;
			A[5][2]=1;
			A[6][1]=1;

			for(register int i=8;i<=N;i+=2)
			{
				A[i-1][i]=1;
				for(register int j=1;j<=i-2;++j)
				{
					A[j][i-1]=1;
					A[i][j]=1;
				}
			}
		}

		for(register int i=1;i<=N;++i)
		{
			for(register int j=1;j<=N;++j)
			{
				A[i][j]+='0';
			}
			fout<<A[i]+1<<"\n";
		}
	}
	fout.close();
	return 0;
}