Pagini recente » Cod sursa (job #164888) | Cod sursa (job #1488201) | Cod sursa (job #2627799) | Cod sursa (job #2436875) | Cod sursa (job #313095)
Cod sursa(job #313095)
#include <stdio.h>
#define DIM 1005
int a[DIM];
int n,nr;
int main ()
{
freopen ("dame.in","r",stdin);
freopen ("dame.out","w",stdout);
int i;
scanf ("%d",&n);
for (i=2; i<=n; i+=2)
a[++nr]=i;
if (n%12==3 || n%12==9)
{
for (i=1; i<nr; ++i)
a[i]=a[i+1];
a[nr]=2;
}
for (i=1; i<=n; i+=2)
a[++nr]=i;
if (n%12==8)
for (i=nr; a[i]%2==1; i-=2)
a[i]^=a[i-1]^=a[i]^=a[i-1];
if (n%12==2)
{
for (i=1; i<=nr; ++i)
if (a[i]==3 || a[i]==1)
{
a[i]^=a[i+1]^=a[i]^=a[i+1];
break;
}
for (i+=2 ; i<nr; ++i)
a[i]=a[i+1];
a[nr]=5;
}
if (n%12==3 || n%12==9)
{
for (i=1; i<=nr; ++i)
if (a[i]==3 || a[i]==1)
break;
for ( ; i<nr-1; ++i)
a[i]=a[i+2];
a[nr-1]=1;
a[nr]=3;
}
if (n==2)
printf ("1\n1 1\n");
else if (n==3)
printf ("2\n1 1\n3 2\n");
else
{
printf ("%d\n",n);
for (i=1; i<=n; ++i)
printf ("%d %d\n",i,a[i]);
}
return 0;
}