Pagini recente » Cod sursa (job #1777119) | Cod sursa (job #238421) | Cod sursa (job #1633439) | Cod sursa (job #82984) | Cod sursa (job #1586636)
#include <fstream>
#define Nmax 205
using namespace std;
char a[Nmax][Nmax];
int Bad,n;
inline void Mark(int x, int y)
{
a[x][y]='1'; a[y][x]='0';
}
inline void Solve(int st, int dr)
{
if(st==dr) return;
if(dr-st==5)
{
Mark(1,2); Mark(1,3); Mark(1,4);
Mark(2,3); Mark(2,4); Mark(2,5);
Mark(3,4); Mark(3,5);
Mark(5,6); Mark(5,1);
Mark(6,1); Mark(6,2); Mark(6,3);
return;
}
int mij,i,j;
if((dr-st+1)%2==0) mij=st+5;
else mij=st;
Solve(st,mij); Solve(mij+1,dr-1);
for(i=st;i<=mij;++i)
for(j=mij+1;j<dr;++j) Mark(i,j);
for(j=mij+1;j<dr;++j) Mark(j,dr);
for(i=st;i<=mij;++i) Mark(dr,i);
}
int main()
{
int i,j;
ifstream cin("oras.in");
ofstream cout("oras.out");
cin>>n;
if(n==4)
{
cout<<"-1"; return 0;
}
for(i=1;i<=n;++i)
for(j=1;j<=n;++j) a[i][j]='0';
Solve(1,n);
for(i=1;i<=n;++i) cout<<(a[i]+1)<<"\n";
return 0;
}