Cod sursa(job #32880)

Utilizator kyrkDragos Dumitrescu kyrk Data 18 martie 2007 17:22:44
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.45 kb
#include<stdio.h>
main()
{
int a[1001],i,j,k,r,s,x,l,n,m,sp,valid;
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
fscanf(stdin,"%d",&n);
sp=0;
if(n==1){ fprintf(stdout,"%d\n",(sp+1));
	  fprintf(stdout,"%d %d",(sp+1),(sp+1));
	  sp=1;}
if(n==2){ fprintf(stdout,"%d\n",(sp+1));
	  fprintf(stdout,"%d %d",(sp+1),(sp+1));
	  sp=1;}
if(n==3){ fprintf(stdout,"%d\n",(sp+2));
	  fprintf(stdout,"%d %d\n",(sp+1),(sp+2));
	  fprintf(stdout,"%d %d",(sp+3),(sp+1));
	  sp=1;
	}
if(n==4){ fprintf(stdout,"%d\n",(sp+4));
	  fprintf(stdout,"%d %d\n",(sp+1),(sp+2));
	  fprintf(stdout,"%d %d\n",(sp+2),(sp+4));
	  fprintf(stdout,"%d %d\n",(sp+3),(sp+3));
	  fprintf(stdout,"%d %d",(sp+4),(sp+1));
	  sp=1;
	 }
if(sp==0)
{ r=n%12;
 if((r==3)||(r==9))
{ j=1;
  for(i=4;i<=n;i+=2)
   { a[j]=i; j++; }
  a[j]=2;
  j++;
}
else
{ j=1;
  for(i=2;i<=n;i+=2)
   { a[j]=i; j++; }
}
valid=0;
if(r==8)
{
  i=3;
  do{
     a[j]=i;j++;
     a[j]=i-2;j++;
     i+=4;
     }while(i<=n);
  j--;
  valid=1;
}
if(r==2)
{
   a[j]=3;j++;
   a[j]=1;j++;
   for(i=7;i<=n;i+=2)
    { a[j]=i; j++; }
   a[j]=5;
   valid=1;
}
if((r==3)||(r==9))
{
   for(i=5;i<=n;i+=2)
    { a[j]=i; j++; }
   a[j]=1;j++;
   a[j]=3;
   valid=1;
}
if(valid==0)
{
   for(i=1;i<=n;i+=2)
    { a[j]=i;j++; }
   j--;
}
fprintf(stdout,"%d\n",j);
for(i=1;i<=j;i++)
 fprintf(stdout,"%d %d\n",i,a[i]);

}




fclose(stdin);
fclose(stdout);
return 0;
}