Pagini recente » Cod sursa (job #1220137) | Cod sursa (job #381568)
Cod sursa(job #381568)
#include <cstdio>
#include <algorithm>
#define N 1024
using namespace std;
int a[N];
int n;
int main()
{
freopen("dame.in","r",stdin);
scanf("%d", &n);
int r = n % 12;
int i, j;
int nr = 0;
for(i = 2; i <= n; i += 2)
a[++nr] = i;
if(r == 3 || r == 9)
{
nr = 0;
// mut pe 2 la sfarsitul listei
for(i = 4; i <= n; i += 2)
a[++nr] = i;
a[++nr] = 2;
}
int old = nr;
for(i = 1; i <= n; i += 2)
a[++nr] = i;
if(r == 8)
{
for(i = old + 1; i <= nr; i += 2)
swap(a[i], a[i+1]);
}
if(r == 2)
{//interschimb 1 cu 3 si mut pe 5 la sf
nr = old;
a[++nr] = 3;
a[++nr] = 1;
for(i = 7; i <= n; i += 2)
a[++nr] = i;
a[++nr] = 5;
}
if(r == 3 || r == 9)
{
nr = old;
for(i = 5; i <= n; i += 2)
a[++nr] = i;
a[++nr] = 1;
a[++nr] = 3;
}
freopen("dame.out","w",stdout);
if(n == 1)
{
printf("1\n");
printf("1 1\n");
return 0;
}
if(n == 2)
{
printf("1\n");
printf("1 1\n");
return 0;
}
if(n == 3)
{
printf("2\n");
printf("1 1\n");
printf("2 3\n");
return 0;
}
printf("%d\n", n);
for(i = 1; i <= n; ++i)
printf("%d %d\n", i, a[i]);
return 0;
}