Pagini recente » Cod sursa (job #2685511) | Cod sursa (job #2886285) | Cod sursa (job #2389626) | Cod sursa (job #2502394) | Cod sursa (job #1427431)
#include <cstdio>
#include <algorithm>
#include <cstring>
#define Nmax 1002
using namespace std;
int n, i, j, l, p, q, nr;
bool a[Nmax][Nmax];
struct nod
{
int x;
int y;
}sol[Nmax];
void marc(int p, int q)
{
int i, j;
for (i = 1; i <= n; ++i)
{
a[i][q] = 1;
a[p][i] = 1;
}
i = p;
j = q;
while (i && j)
{
a[i][j] = 1;
--i; --j;
}
i = p;
j = q;
while (i <= n && j <= n)
{
a[i][j] = 1;
++i; ++j;
}
i = p;
j = q;
while (i <= n && j)
{
a[i][j] = 1;
++i; --j;
}
i = p;
j = q;
while (i && j <= n)
{
a[i][j] = 1;
--i; ++j;
}
}
int main()
{
freopen("dame.in", "r", stdin);
freopen("dame.out", "w", stdout);
scanf("%d", &n);
p = 1; q = n/2;
sol[++ nr].x = p;
sol[nr].y = q;
marc(p, q);
l = 1;
while (l < n)
{
++l;
for (i = 1; i <= n; ++i)
if (!a[l][i])
{
p = l;
q = i;
sol[++ nr].x = p;
sol[nr].y = q;
break;
}
marc(p, q);
}
printf("%d\n", nr);
for (i = 1; i <= nr; ++i)
printf("%d %d\n", sol[i].x, sol[i].y);
return 0;
}