Pagini recente » Cod sursa (job #60698) | Cod sursa (job #395628) | Cod sursa (job #53564) | Cod sursa (job #133853) | Cod sursa (job #1838056)
#include <iostream>
#include <cstdio>
#define MAXN 220
using namespace std;
int n;
int mat[MAXN][MAXN];
void solve(int n)
{
if (n <= 1)
return;
for (int i = 1; i <= n-2; i++) {
mat[n][i] = 1;
mat[i][n-1] = 1;
}
mat[n-1][n] = 1;
solve(n-2);
}
void solve2()
{
mat[1][2] = mat[2][3] = mat[3][1] = 1;
mat[2][4] = mat[4][5] = mat[5][2] = 1;
mat[1][4] = mat[5][3] = 1;
mat[6][4] = mat[6][5] = 1;
mat[4][3] = mat[5][1] = 1;
mat[6][2] = mat[1][6] = mat[3][6] = 1;
for (int i = 7; i <= n; i += 2)
{
for (int j = 1; j < i; j++)
{
mat[j][i] = 1;
mat[i+1][j] = 1;
}
mat[i][i+1] = 1;
}
}
int main()
{
freopen("oras.in", "r", stdin);
freopen("oras.out", "w", stdout);
scanf("%d", &n);
if (n & 1)
solve(n);
else {
if (n < 6) {
printf("-1");
return 0;
}
solve2();
}
for (int i = 1; i <= n; i++, printf("\n"))
for (int j = 1; j <= n; j++)
printf("%d", mat[i][j]);
return 0;
}