Pagini recente » Cod sursa (job #589231) | Cod sursa (job #2437237) | Cod sursa (job #2936351) | Cod sursa (job #29106) | Cod sursa (job #1586605)
#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(Bad || st==dr) return;
if(dr-st==1)
{
Bad=1; return;
}
int mij,i,j;
if(dr-st>=4) mij=st+2;
else
if(dr-st==3)
{
Bad=1; return;
}
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;
for(i=1;i<=n;++i) a[i][i]='0';
Solve(1,n);
if(Bad) cout<<"-1\n";
else
for(i=1;i<=n;++i) cout<<(a[i]+1)<<"\n";
return 0;
}