Cod sursa(job #192865)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 31 mai 2008 22:15:38
Problema Dame Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#define IN "dame.in"
#define OUT "dame.out"
#define N_MAX 1100

int n;
int v[N_MAX];

void scan()
{
	freopen(IN, "r",stdin);
	freopen(OUT, "w",stdout);
	scanf("%d", &n);
}

void solve()
{
	int aux,st=1,end=0,x;
	for(int i=2;i<=n;i+=2)
		v[++end]=i;
	if(n%12==3 || n%12==9)
	{
		for(int i=st;i<end;++i)
			v[i]=v[i+1];
		v[end]=2;
	}	
	x=end+1;
	for(int i=1;i<=n;i+=2)
		v[++end]=i;
	if(n%12==8)
		for(int i=x;i<=end;i+=2)
		{
			aux=v[i];
			v[i]=v[i+1];
			v[i+1]=aux;
		}
	if(n%12==2)
	{
		aux=v[x],v[x]=v[x+1],v[x+1]=aux;
		for(int i=x+2;i<end;++i)
			v[i]=v[i+1];
		v[end]=5;
	}
	if(n%12==3 || n%12==9)
	{
		for(int i=x;i<end-1;++i)
			v[i]=v[i+1];
		v[end-1]=1;
		v[end]=3;
	}	
	printf("%d\n",end-st+1);
	for(int i=st;i<=end;++i)
		printf("%d %d\n",v[i],v[v[i]]); 
}

int main()
{
	scan();
	solve();
	return 0;
}