Cod sursa(job #345316)

Utilizator indestructiblecont de teste indestructible Data 2 septembrie 2009 15:53:56
Problema Dame Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#define N 1005
int n,col[N],r;
void schimba(int poz1,int poz2)
{
	int temp;
	temp=col[poz1];
	col[poz1]=col[poz2];
	col[poz2]=temp;
}
void rezolva()
{
	int i;
	for (i=2; i<=n; i+=2)
		col[++r]=i;
	if (n%12==3 || n%12==9)
		schimba(1,r);
	for (i=1; i<=n; i+=2)
		col[++r]=i;
	if (n%12==8)
	{
		schimba(r/2+1,r/2+2);
		schimba(r/2+3,r/2+4);
	}
	if (n%12==2)
	{
		schimba(r/2+1,r/2+2);
		schimba(r/2+3,r);
	}
	if (n%12==3 || n%12==9)
	{
		schimba(r/2+1,r-1);
		schimba(r/2+2,r);
	}
}
void show()
{
	int i,rez;
	if (n==2 || n==3)
	{
		rez=n-1;
		printf("%d\n",n-1);
	}
	else
	{
		rez=n;
		printf("%d\n",n);
	}
	for (i=1; i<=rez; i++)
		printf("%d %d\n",i,col[i]);
}
int main()
{
	freopen("dame.in","r",stdin);
	freopen("dame.out","w",stdout);
	scanf("%d",&n);
	rezolva();
	show();
	return 0;
}