Pagini recente » Cod sursa (job #1736575) | Cod sursa (job #1121972) | Cod sursa (job #1919277) | Cod sursa (job #1869689) | Cod sursa (job #1586603)
#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=(st+dr-1)/2,i,j;
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;
}