Pagini recente » Cod sursa (job #389020) | Cod sursa (job #383532) | Cod sursa (job #484591) | Cod sursa (job #936200) | Cod sursa (job #767929)
Cod sursa(job #767929)
#include<stdio.h>
FILE *f = fopen("oras.in","r");
FILE *g = fopen("oras.out","w");
#define MaxN 210
int N;
char A[MaxN][MaxN];
void citire(void)
{
fscanf(f,"%d",&N);
}
inline int Pozitie(int a)
{
if(a%N == 0)
return N;
return a%N;
}
void Rezolvare(void)
{
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
A[i][j] = '0';
if(N&1)
for(int i=1;i<=N;i++)
for(int j=1,k = 1;k<=N/2;j+=2,k++)
A[i-1][Pozitie(i+j)-1] = '1';
else
{
A[0][1] = A[0][5] = A[1][2] = A[1][3] = A[1][5] = A[2][0] = A[2][3]
= A[2][5] = A[3][0] = A[3][4] = A[4][0] = A[4][1] = A[4][2] = A[5][3] = A[5][4] = '1';
for(int i=7;i<=N;A[i-1][i] = '1',i+=2)
for(int j=1;j<i;j++)
A[j-1][i-1] = '1';
for(int i=8;i<=N;i+=2)
for(int j=1;j<i-1;j++)
A[i-1][j-1] = '1';
}
}
int main()
{
citire();
Rezolvare();
if(N==4)
fprintf(g,"-1\n");
else
for(int i=0;i<N;i++)
fprintf(g,"%s\n",A[i]);
}