Pagini recente » Cod sursa (job #323435) | Cod sursa (job #2114458) | Cod sursa (job #668535) | Cod sursa (job #3289673) | Cod sursa (job #14281)
Cod sursa(job #14281)
#include <stdio.h>
#define NMAX 1002
int i,j,n,m,A[NMAX];
int main()
{
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d",&n);
int N=n;
int R=n % 12;
for (i=2;i<=N;i+=2)
A[++A[0]]=i;
if (R==3 || R==9)
{
for (i=1;i<=A[0];i++)
A[i]=A[i+1];
A[A[0]]=2;
}
int p=A[0]+1;
for (i=1;i<=N;i+=2)
A[++A[0]]=i;
if (R == 8)
{
for (i=p;i<=A[0];i+=2)
{
int x=A[i];
A[i]=A[i+1];
A[i+1]=x;
}
}
if (R == 2)
{
A[p]=3; A[p+1]=1;
for (i=p+2;i<=A[0];i++)
A[i]=A[i+1];
A[A[0]]=5;
}
if (R == 3 || R == 9)
{
for (i=p;i<=A[0];i++)
A[i]=A[i+1];
for (i=p;i<=A[0];i++)
A[i]=A[i+1];
A[A[0]-1]=3; A[A[0]-1]=1;
}
if (n >= 4)
{
printf("%d\n",n);
for (i=1;i<=N;i++)
printf("%d %d\n",i,A[i]);
}
else
if (n == 1)
{
printf("1\n1 1\n");
}
else
if (n == 2)
{
printf("1\n1 1\n");
}
else
if (n == 3)
{
printf("2\n1 1\n3 2\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}