Cod sursa(job #1183943)

Utilizator ion824Ion Ureche ion824 Data 10 mai 2014 17:20:20
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
using namespace std;

int a[1003];

// N != 6k + 2
void dame1(int N){
	int N2 = N / 2;
	for(int i = 1; i<= N2; ++i)
	{
		a[i] = 2 * i;
		a[N2 + i] = 2 * i - 1; 
	}
}

// N != 6*k
void dame2(int N){
	int N2 = N / 2;
	for(int i=1;i<=N2; ++i)
	{
		a[i] = 1 + (2 * i + N2 - 3) % N;
		a[N + 1 - i] = N - (2 * i + N2 - 3) % N;
	}
}

void solve(int N){
	
	if(N&1) 
	{
		a[N] = N;
		--N;
	}
	
	if(N % 6 != 2) dame1(N);
	  else dame2(N);
}

int main(){
	ifstream cin("dame.in");
	ofstream cout("dame.out");
	int N,i,j;
	
	cin>>N;
	
	if(N <= 2) 
	{
		cout<<"1\n1 1\n";
		return 0;
	}
	if(N==3)
	{
		cout<<"2\n1 1\n3 2\n";
		return 0;
	}
	
	solve(N);
	
	cout<<N<<'\n';
	for(i=1;i<=N;++i) cout<<i<<' '<<a[i]<<'\n';
	
	return 0;
}