Pagini recente » Cod sursa (job #418406) | Cod sursa (job #377118) | Cod sursa (job #338234) | Cod sursa (job #45268) | Cod sursa (job #801279)
Cod sursa(job #801279)
#include <cassert>
#include <cstdio>
using namespace std;
const int N = 205;
int n;
int sol[N][N];
void read() {
assert(freopen("oras.in", "r", stdin) != NULL);
assert(freopen("oras.out", "w", stdout) != NULL);
assert(scanf("%d", &n) == 1);
}
void sase() {
sol[1][2] = sol[1][6] = 1;
sol[2][3] = sol[2][5] = 1;
sol[3][1] = sol[3][4] = sol[3][6] = 1;
sol[4][1] = sol[4][2] = sol[4][5] = 1;
sol[5][1] = sol[5][3] = sol[5][6] = 1;
sol[6][2] = sol[6][4] = 1;
}
void solve() {
sol[1][2] = sol[2][3] = sol[3][1] = 1;
if (n % 2 == 0) {
sase();
for (int i = 8; i <= n; i += 2) {
sol[i - 1][i] = 1;
for (int j = 1; j <= i - 2; ++j) {
sol[i][j] = 1;
sol[j][i - 1] = 1;
}
}
}
else {
for (int i = 5; i <= n; i += 2) {
sol[i - 1][i] = 1;
for (int j = 1; j <= i - 2; ++j) {
sol[i][j] = 1;
sol[j][i - 1] = 1;
}
}
}
}
void print() {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j)
printf("%d", sol[i][j]);
printf("\n");
}
}
int main() {
read();
if (n == 4) {
printf("-1\n");
return 0;
}
solve();
print();
}