Pagini recente » Cod sursa (job #728196) | Cod sursa (job #851702) | Cod sursa (job #1158774) | Cod sursa (job #145677) | Cod sursa (job #1752542)
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
freopen("dame.in", "r", stdin);
freopen("dame.out", "w", stdout);
int n;
scanf("%d", &n);
if (n <= 2)
printf("%d\n%d %d", 1, 1, 1);
else if (n == 3)
printf("2\n1 1\n3 2");
else {
int par[1050], impar[1050];
par[0] = impar[0] = 0;
printf("%d\n", n);
for (int i = 2; i <= n; i += 2) par[++par[0]] = i;
for (int i = 1; i <= n; i += 2) impar[++impar[0]] = i;
int k = 1;
if (n % 6 == 2) {
for (int i = 1; i <= par[0]; i++, k++)
printf("%d %d\n", k, par[i]);
printf("%d %d\n", k, 3); ++k;
printf("%d %d\n", k, 1); ++k;
impar[++impar[0]] = 5;
for (int i = 4; i <= impar[0]; i++, k++)
printf("%d %d\n", k, impar[i]);
}
else if (n % 6 == 3) {
par[++par[0]] = 2;
for (int i = 2; i <= par[0]; i++, k++)
printf("%d %d\n", k, par[i]);
impar[++impar[0]] = 1;
impar[++impar[0]] = 3;
for (int i = 3; i <= impar[0]; i++, k++)
printf("%d %d\n", k, impar[i]);
}
else {
for (int i = 1; i <= par[0]; i++, k++)
printf("%d %d\n", k, par[i]);
for (int i = 1; i <= impar[0]; i++, k++)
printf("%d %d\n", k, impar[i]);
}
}
return 0;
}