Pagini recente » Cod sursa (job #3244492) | Cod sursa (job #2163921) | Cod sursa (job #1954377) | Cod sursa (job #572717) | Cod sursa (job #3187944)
//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;
}