Cod sursa(job #54696)

Utilizator FlorianFlorian Marcu Florian Data 25 aprilie 2007 16:03:40
Problema Dame Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
int main()
{int n,i,j,v[1001],x[1001],y,in,p,z;
FILE*f=fopen("dame.in","r");
FILE*g=fopen("dame.out","w");
fscanf(f,"%d",&n);
if (n==1||n>=4)
	{
	fprintf(g,"%d\n",n);
	 y=n;
	 z=n;
	 p=2;
	 for (i=2;i<=n;i+=2) v[i]=i;
	 if(n%12==3||n%9==0)
		{
		y++; v[y]=2; v[2]=0;}
	 for(i=1;i<=n;i+=2) x[i]=i;
	 if(n%12==8)
		{
		for(i=1;i<=n-2;i+=4) {x[i]=i+2; x[i+2]=i;}
		}
	 else if (n%12==2)
		{
		z++; x[z]=5; x[5]=0; x[1]=3; x[3]=1;
		}
	 else if(n%12==3||n%12==9)
		{
		z++;
		if (z%2==0) z++;
		x[z]=1;
		z++;
		if(z%2==0) z++;
		 x[z]=3; x[1]=0; x[3]=0;}
	 p=1; i=2;
	 while(i<=y)
	 {
	 if(v[i]!=0) {fprintf(g,"%d %d\n",p,v[i]); p++;}
	 i+=2; }
	 i=1;
	 while(i<=z)
		{
		if(x[i]!=0) {fprintf(g,"%d %d\n",p,x[i]); p++;}
		i+=2;}

	  }
else {
      if(n==2) fprintf(g,"1\n1 1");
      else if (n==3) fprintf(g,"2\n1 1\n2 3");
}
fclose(f);
fclose(g);
return 0;}