Pagini recente » Cod sursa (job #60182) | Cod sursa (job #2151001) | Cod sursa (job #2770039) | Cod sursa (job #3273322) | Cod sursa (job #2304432)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oras.in");
ofstream fout("oras.out");
int n;
bool N[210],A[210][210];
void clear(int n){
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
A[i][j]=0;
}
}
}
void clearn(int n){
for(int i=0;i<=n;i++){
N[i]=0;
}
}
void bk(int k, int n){
if(k==2) return;
N[n]=1;
for(int i=1;i<=n;i++){
if(A[n][i])bk(k+1,i);
}
return;
}
bool comp(){
for(int i=1;i<=n;i++)if(!N[i]) return 0;
return 1;
}
int main(){
fin>>n;
if(n%2){
clear(n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(j<i){
if(i%2)A[i][j]=(j%2);
else A[i][j]=!(j%2);
}else if(j>i){
if(i%2)A[i][j]=!(j%2);
else A[i][j]=(j%2);
}else A[i][j]=0;
}
}
bool stop=false;
for(int i=1;i<=n && stop;i++){
clearn(n);
bk(0,i);
if(!comp()) stop=true;
}
if(stop)fout<<-1;
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
fout<<A[i][j];
}
fout<<'\n';
}
}
}else fout<<-1;
return 0;
}