Cod sursa(job #800443)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 21 octombrie 2012 17:17:58
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>
using namespace std;
#define NMAX 1002
int l[NMAX],a;
int main ()
{
	int n,i,nr;
	ifstream f("dame.in");
	ofstream g("dame.out");
	f>>n;
	f.close();
	if(n==1 || n==2) {
		g<<"1"<<'\n'<<"1 1";
		g.close();
		return 0;
	}
	else if(n==3) {
		g<<"2"<<'\n'<<"1 1\n"<<"3 2";
		g.close();
		return 0;
	}
	nr=0;
	for(i=2;i<=n;i=i+2)
		l[++nr]=i;
	if(n%12==3 || n%12==9) {
		for(i=1;i<=nr-1;i++)
			l[i]=l[i+1];
		l[nr]=2;
	}
	g<<n<<'\n';
	for(i=1;i<=nr;i++)
		g<<i<<" "<<l[i]<<'\n';
	nr=0;
	for(i=1;i<=n;i=i+2)
		l[++nr]=i;
	if(n%12==8)
		for(i=2;i<=n;i=i+2)
			swap(l[i-1],l[i]);
	if(n%12==2) {
		swap(l[1],l[2]);
		for(i=3;i<=nr-1;i++)
			l[i]=l[i+1];
		l[nr]=5;
	}
	if(n%12==3 || n%12==9) {
		for(i=1;i<=nr-2;i++)
			l[i]=l[i+2];
		l[nr-1]=1;
		l[nr]=3;
	}
	for(i=1;i<=nr;i++)
		g<<n/2+i<<" "<<l[i]<<'\n';
	g.close();
	return 0;
}