Cod sursa(job #478249)
#include <cstdio>
#include <algorithm>
int n, fn[101];
int mod(int x)
{
if (x > n) x -= n;
return x;
}
int main()
{
freopen("tije.in", "r", stdin);
freopen("tije.out", "w", stdout);
scanf("%d", &n);
if (n == 2)
{
printf("1 3\n2 1\n3 2");
return 0;
}
for (int i = n - 1; i >= 2; --i)
for (int j = 1; j <= n; ++j)
{
int wh = mod(j + (n - i));
for (int k = 1; k <= i; ++k)
printf("%d %d\n", j, n + 1);
printf("%d %d\n", wh, j);
for (int k = 1; k < i; ++k)
printf("%d %d\n", n + 1, j);
printf("%d %d\n", n + 1, wh);
}
for (int i = 1; i <= n; ++i)
fn[i] = i;
for (int j = 1; j <= n; ++j)
{
int wh = fn[mod(j + n - 1)];
printf("%d %d\n", j, n + 1);
printf("%d %d\n", wh, j);
std::swap(fn[j], fn[wh]);
printf("%d %d\n", n + 1, wh);
}
}