Cod sursa(job #64154)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 iunie 2007 21:17:33
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<stdio.h>
int n,i,d[1001],p,r,ok;
int main()
{
	FILE *f,*g;
	f=fopen("dame.in","r");
	g=fopen("dame.out","w");
	fscanf(f,"%d",&n);
	if(n==2)
	{ fprintf(g,"1\n");
	  fprintf(g,"1 1\n");
	  fcloseall();
	  return 0;
	}
	if(n==3)
	{ fprintf(g,"2\n");
	  fprintf(g,"1 1\n");
	  fprintf(g,"2 3\n");
	  fcloseall();
	  return 0;
	}
	r=n%12;
	p=2;
	if(r==3||r==9)p=1;i=4;
	while(i<=n)
	{ d[p]=i;p++;i+=2;}
	if(r==3||r==9){ d[p]=2;p++;}
	else d[1]=2;
	ok=1;
	if(r==8)
	{ ok=0;
	  i=1;
	  while(i<=n)
	  { d[p+1]=i;i+=2;d[p]=i;i+=2;p+=2;}
	}
	if(r==2)
	{ ok=0;
	  d[p]=3;p++;d[p]=1;p++;
	  i=7;
	  while(i<=n)
	  {d[p]=i;p++;i+=2;}
	  d[p]=5;
	}
	if(r==3||r==9)
	{ ok=0;
	  i=5;
	  while(i<=n)
	  {d[p]=i;p++;i+=2;}
	  d[p]=1;p++;d[p]=3;
	}
	if(ok)
	{ i=1;
	  while(i<=n)
	  { d[p]=i;p++;i+=2;}
	}
	fprintf(g,"%d\n",n);
	for(i=1;i<=n;i++)
	fprintf(g,"%d %d\n",i,d[i]);
	fcloseall();
	return 0;
}