Cod sursa(job #193701)

Utilizator raduzerRadu Zernoveanu raduzer Data 6 iunie 2008 13:20:52
Problema Dame Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>

int p,ip,i,n,a[1100],z;

int main()
{
	freopen("dame.in","r",stdin);
	freopen("dame.out","w",stdout);
	scanf("%d",&n);
	if (n==2)
	{
		printf("%d\n",n-1);
		printf("1 1\n");
		return 0;
	}
	if (n==3)
	{
		printf("%d\n",n-1);
		printf("1 1\n");
		printf("2 3\n");
		return 0;
	}
	for (i=2, p=1; i<=n; i+=2, ++p) a[p]=i;
	--p;
	if (n%12==3 || n%12==9) 
	{
		for (i=2; i<=p; ++i) a[i-1]=a[i];
		a[p]=2;
	}
	for (i=1, ip=1; i<=n; i+=2, ip++) a[p+ip]=i;
	--ip;
	if (n%12==8)
	{
		for (i=p+1; i<n; i+=2)
		{
			z=a[i];
			a[i]=a[i+1];
			a[i+1]=z;
		}
	}
	if (n%12==2)
	{
		a[p+1]=3;
		a[p+2]=1;
		for (i=p+3; i<n; ++i) a[i]=a[i+1];
		a[n]=5;
	}
	if (n%12==3 || n%12==9)
	{
		for (i=p+1; i<n-1; ++i) a[i]=a[i+2];
		a[n]=3;
		a[n-1]=1;
	}
	for (i=1; i<=n; ++i) printf("%d %d\n",i,a[i]);
	return 0;
}