Pagini recente » Cod sursa (job #2031113) | Cod sursa (job #463994) | Cod sursa (job #2728320) | Cod sursa (job #800517) | Cod sursa (job #236715)
Cod sursa(job #236715)
#include <stdio.h>
#include <math.h>
long i, n, o, p, v[1024];
void mut(long poz, long cat, long cate) {
for (long i = poz; i <= cate; ++i) {
v[i - cat] = v[i];
}
}
int main() {
freopen("dame.in", "r", stdin);
freopen("dame.out", "w", stdout);
scanf("%ld", &n);
if (n == 2) {
printf("1\n1 1");
return 0;
}
for (i = 1; i <= n; ++i) {
if (i % 2 == 0) {
v[++o] = i;
++p;
}
}
if (n % 12 == 3 || n % 12 == 9) {
mut(2, 1, o);
v[o] = 2;
}
for (i = 1; i <= n; ++i) {
if (i % 2 == 1) {
v[++o] = i;
}
}
if (n % 12 == 8) {
for (i = 1; i <= o; ++i) {
if (i % 2 == 1) {
long x = v[i];
v[i] = v[i + 1];
v[i + 1] = x;
}
}
}
if (n % 12 == 2) {
v[p + 1] = 3;
v[p + 2] = 1;
mut(p + 4, 1, o);
v[o] = 5;
}
if (n % 12 == 3 || n % 12 == 9) {
mut(p + 3, 2, o);
v[o - 1] = 1;
v[o] = 3;
}
printf("%ld\n", o);
for (i = 1; i <= o; ++i) {
printf("%ld %ld\n", i, v[i]);
}
return 0;
}