Cod sursa(job #68559)

Utilizator floringh06Florin Ghesu floringh06 Data 28 iunie 2007 13:59:53
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
using namespace std;

#define MAX_N 1005

#include <stdio.h>

FILE *fin=fopen("dame.in","r"),
     *fout=fopen("dame.out","w");
     
int a[MAX_N];
int n,i,k,p;

int main()
{
    fscanf(fin,"%d",&n);
    if (n==2) 
     {
       fprintf(fout,"1\n1 1");
       return 0;
     }
    if (n==3)
     {    
       fprintf(fout,"2\n1 1\n3 2\n");
       return 0;
     }     
    if (n%12==3 || n%12==9) {
     for (i=4; i<=n; i+=2)
      a[++k]=i;
     a[++k]=2; }
    else 
     for (i=2; i<=n; i+=2)
      a[++k]=i;
    p=k+1;  
    for (i=1; i<=n; i+=2)
      a[++k]=i;
    int aux;  
    if (n%12==8)    
     for (i=p; i<=k; i+=2)
      {
        aux=a[i];
        a[i]=a[i+1];
        a[i+1]=aux;
      }  
    if (n%12==2) 
      {  
       k=p-1;            
       a[++k]=3; a[++k]=1;    
       for (i=7; i<=n; i+=2)
        a[++k]=i;
       a[++k]=5; 
      }         
    if (n%12==3 || n%12==9)
      { 
        k=p-1;        
        for (i=5; i<=n; i+=2)
         a[++k]=i;
       a[++k]=1; a[++k]=3;
      }
    fprintf(fout,"%d\n",k);
    for (i=1; i<=k; i++)
     fprintf(fout,"%d %d\n",a[i],i);
    return 0;
}