Cod sursa(job #617184)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 14 octombrie 2011 09:34:13
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 kb
#include<stdio.h>
#define N 1001
int n,a[N],i,k,l,x;
int main()
{freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d",&n);
if(n==1)
      printf("1\n1 1");
else
      if(n==2)
            printf("1\n1 1");
      else
            if(n==3)
                   printf("2\n1 1\n2 3");
            else
                   {printf("%d\n",n);
                   for(i=2;i<=n;i+=2)
                          a[++k]=i;
                   if(n%12==3||n%12==9)
                          {for(i=1;i<k;i++)
                                 a[i]=a[i+1];
                          a[k]=2;}
                   l=k;
                   for(i=1;i<=n;i+=2)
                          a[++k]=i;
                   if(n%12==8)
                          {for(i=l+1;i<=k;i+=2)
                                 x=a[i],a[i]=a[i+1],a[i+1]=x;}
                   else
                          if(n%12==2)
                                 {x=a[l+1],a[l+1]=a[l+2],a[l+2]=x;
                                 for(i=l+3;i<k;i++)
                                        a[i]=a[i+1];
                                 a[k]=5;}
                          else
                                 if(n%12==3||n%12==9)
                                        {for(i=l+1;i<k-1;i++)
                                               a[i]=a[i+2];
                                        a[k-1]=1,a[k]=3;}
                   for(i=1;i<=n;i++)
                          printf("%d %d\n",i,a[i]);}
return 0;}