Cod sursa(job #911492)

Utilizator Kira96Denis Mita Kira96 Data 11 martie 2013 18:56:20
Problema Dame Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
using namespace std;
ifstream f("dame.in");
ofstream g("dame.out");
int n,l[1100],i,po,t;
void t1()
{
	g<<"1\n1 1";
}
void t2()
{
	g<<"1\n1 1";
}
void t3()
{
	g<<"2\n1 1\n2 3";
}
void t4()
{
	g<<"4\n1 2\n2 4\n3 1\n4 3";
}
int main ()
{
	f>>n;
	if(n<=4)
	switch(n)
	{
	case 1: t1(); break;
	case 2: t2(); break;
	case 3: t3(); break;
	case 4: t4(); break;
	}
	if(n<=4)
		return 0;
	if(n%12==3||n%12==9)
	{
		for(i=4;i<=n;i+=2)
			l[++t]=i;
		l[++t]=2;
	}
	else
	for(i=2;i<=n;i+=2)
		l[++t]=i;
	if(n%12==3||n%12==9)
	{
		for(i=5;i<=n;i+=2)
			l[++t]=i;
		l[++t]=1; l[++t]=3;
	}
	if(n%12==2)
	{
		l[++t]=3; l[++t]=1;
		for(i=7;i<=n;i+=2)
			l[++t]=i;
		l[++t]=5;
	}
	if(n%12==8)
	{
		po=t+1;
		for(i=1;i<=n;i+=2)
			l[++t]=i;
		for(i=po;i<t;i+=2)
			l[i]^=l[i+1]^=l[i]^=l[i+1];
	}
	g<<n<<"\n";
	for(i=1;i<=n;++i)
		g<<i<<" "<<l[i]<<"\n";
	return 0;
}