Pagini recente » Cod sursa (job #2358054) | Cod sursa (job #2685802) | Cod sursa (job #1880284) | Cod sursa (job #1734948) | Cod sursa (job #1560369)
#include <bits/stdc++.h>
#define pb push_back
#define maxN 202
using namespace std;
int n, a[maxN][maxN];
vector < int > V[maxN];
void read()
{
freopen("oras.in", "r", stdin);
scanf("%d", &n);
}
void solve()
{
int i, j, k;
if (n == 4)
return;
/*
010
001
100*/
a[1][2] = a[2][3] = a[3][1] = 1;
V[1].pb(2); V[2].pb(3); V[3].pb(1);
for (i = 5; i <= n; ++ i)
{
if (i == 6)
{
a[1][2] = a[1][4] = a[2][5] = 1;
a[5][4] = a[6][1] = a[6][5] = 1;
a[2][6] = a[3][1] = a[3][2] = 1;
a[4][6] = a[5][1] = a[5][3] = 1;
a[3][6] = a[4][2] = a[4][3] = 1;
V[1].pb(2); V[1].pb(4);
V[2].pb(5); V[2].pb(6);
V[3].pb(2); V[3].pb(6); V[3].pb(1);
V[4].pb(6); V[4].pb(3); V[4].pb(2);
V[5].pb(4); V[5].pb(3); V[5].pb(1);
V[6].pb(1); V[6].pb(5);
continue;
}
else
{
for (j = 1; j <= i - 2; ++ j)
if (!a[i - 1][j] && !a[j][i - 1])
for (k = 0; k < V[j].size(); ++ k)
{
V[i - 1].pb(j);
a[i - 1][j] = 1;
V[V[j][k]].pb(i - 1);
a[V[j][k]][i - 1] = 1;
}
a[i][i - 1] = 1;
V[i].pb(i - 1);
for (j = 1; j <= i - 2; ++ j)
if (a[i - 1][j])
{
V[j].pb(i);
a[j][i] = 1;
}
else
{
V[i].pb(j);
a[i][j] = 1;
}
}
}
}
void write()
{
int i, j;
freopen("oras.out", "w", stdout);
if (n == 4)
printf("-1");
else
for (i = 1; i <= n; ++ i)
{
for (j = 1; j <= n; ++ j)
printf("%d", a[i][j]);
printf("\n");
}
}
int main()
{
read();
solve();
write();
return 0;
}