Pagini recente » Cod sursa (job #507608) | Cod sursa (job #466197) | Cod sursa (job #1842063) | Cod sursa (job #290704) | Cod sursa (job #333720)
Cod sursa(job #333720)
#include <cstdio>
#define MAXN 201
using namespace std;
int n, m[MAXN][MAXN];
void solve(int k) {
if (k==6) {
m[1][1]=m[1][2]=m[1][3]=0, m[1][4]=m[1][5]=m[1][6]=1;
m[2][1]=1, m[2][2]=0, m[2][3]=m[2][4]=1, m[2][5]=m[2][6]=0;
m[3][1]=1, m[3][2]=m[3][3]=m[3][4]=0, m[3][5]=m[3][6]=1;
m[4][1]=m[4][2]=0, m[4][3]=1, m[4][4]=0, m[4][5]=1, m[4][6]=0;
m[5][1]=0, m[5][2]=1, m[5][3]=m[5][4]=m[5][5]=0, m[5][6]=1;
m[6][1]=0, m[6][2]=1, m[6][3]=0, m[6][4]=1, m[6][5]=m[6][6]=0;
return ;
}
if (k==1) return ;
int i;
solve(k-2);
//nodes 1->n-2
for (i=1; i<=k-2; ++i) {
m[i][k-1]=1;
m[i][k]=0;
}
//node n-1
for (i=1; i<k; ++i) m[k-1][i]=0;
m[k-1][k]=1;
//node n
for (i=1; i<k-1; ++i) m[k][i]=1;
m[k][k-1]=m[k][k]=0;
}
int main() {
int i, j;
freopen("oras.in", "r", stdin);
freopen("oras.out", "w", stdout);
scanf("%d\n", &n);
if (n==4) {
printf("-1\n");
return 0;
}
solve(n);
for (i=1; i<=n; ++i) {
for (j=1; j<=n; ++j) printf("%d", m[i][j]);
printf("\n");
}
return 0;
}