Cod sursa(job #205637)

Utilizator nautilusCohal Alexandru nautilus Data 2 septembrie 2008 11:39:20
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream.h>
int main()

{int n,i,j,aux,a[1001];


 ifstream fin("dame.in");
 ofstream fout("dame.out");

 fin>>n;
if (n>3)
{
 for (i=2; i<=n; i=i+2)
	a[i/2]=i;

 if (n%2==0)
	for (i=1, j=n/2+1; i<=n-1, j<=n; i=i+2, j++)
	 a[j]=i; else
	for (i=1, j=n/2+1; i<=n, j<=n; i=i+2, j++)
	 a[j]=i;

 if (n%12==3 || n%12==9)
	{
	 for (i=1; i<n/2; i++)
		a[i]=a[i+1];
	 a[n/2]=2;
	}

 if (n%12==8)
	for (i=n/2+1; i<n; i=i+2)
	 {
		aux=a[i];
		a[i]=a[i+1];
		a[i+1]=aux;
	 }

 if (n%12==2)
	{
	 a[n/2+1]=3;
	 a[n/2+2]=1;
	 for (i=n/2+3; i<n; i++)
		a[i]=a[i+1];
	 a[n]=5;
	}

 if (n%12==3 || n%12==9)
	{
	 for (i=n/2+1; i<n; i++)
		a[i]=a[i+2];
	 a[n-1]=1;
	 a[n]=3;
	}

 fout<<n<<'\n';
 for (i=1; i<=n; i++)
	fout<<i<<" "<<a[i]<<'\n';
}
else
 if (n==2)
	{
	 fout<<"1"<<'\n';
	 fout<<"1 1";
	} else
	 if (n==3)
		{
		 fout<<"2"<<'\n';
		 fout<<"1 1"<<'\n';
		 fout<<"3 2";
		} else
		if (n==1)
		 {
			fout<<"1"<<'\n';
			fout<<"1 1";
		 }


 fin.close();
 fout.close();

 return 0;
}