Pagini recente » Cod sursa (job #596257) | Cod sursa (job #1828052) | Cod sursa (job #476350) | Cod sursa (job #505531) | Cod sursa (job #1321846)
#include<cstdio>
using namespace std;
int N, A[209][209];
void add_edge (int x, int y)
{
A[x][y] = 1;
}
void solve (int n)
{
if (n == 3)
{
add_edge (1, 2);
add_edge (2, 3);
add_edge (3, 1);
return;
}
if (n == 6)
{
add_edge (1, 2);
add_edge (2, 3);
add_edge (3, 1);
add_edge (4, 5);
add_edge (5, 6);
add_edge (6, 4);
add_edge (1, 4);
add_edge (1, 5);
add_edge (6, 1);
add_edge (5, 2);
add_edge (6, 2);
add_edge (2, 4);
add_edge (3, 4);
add_edge (3, 6);
add_edge (5, 3);
return ;
}
solve (n-2);
for (int i=1; i<=n-2; i++)
add_edge (n-1, i), add_edge (i, n);
add_edge (n, n-1);
}
int main()
{
freopen ("oras.in", "r", stdin);
freopen ("oras.out", "w", stdout);
scanf ("%d", &N);
if (N == 4)
{
printf ("-1\n");
return 0;
}
solve (N);
for (int i=1; i<=N; i++ , printf ("\n"))
for (int j=1; j<=N; j++)
printf ("%d", A[i][j]);
return 0;
}