Cod sursa(job #1247451)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 22 octombrie 2014 20:51:52
Problema Dame Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<fstream>
using namespace std;
int n, i, nr, v[1001], aux;
ifstream fin("dame.in");
ofstream fout("dame.out");
int main(){
	fin>> n;
	if(n >= 4){
		fout<< n <<"\n";
		nr = 2;
		for(i = 1; i <= n / 2; i++){
			v[i] = nr;
			nr += 2;
		}
		if(n % 12 == 8){
			for(i = 2; i <= n / 2; i++){
				v[i-1] = v[i];
			}
			v[n/2] = 2;
		}
		nr = 1;
		for(i = n / 2 + 1; i <= n; i++){
			v[i] = nr;
			nr += 2;
		}
		if(n % 12 == 8){
			for(i = n / 2 + 1; i <= n / 2 + n / 4; i++){
				aux = v[i*2 - 1 - n / 2];
				v[i*2 - 1 - n / 2] = v[i*2 - n / 2];
				v[i*2 - n / 2] = aux;
			}
		}
		if(n % 12 == 2){
			v[n/2+1] = 3;
			v[n/2 + 2] = 1;
			for(i = n / 2 + 4; i <= n; i++){
				v[i-1] = v[i];
			}
			v[n] = 5;
		}
		if(n % 12 == 3 || n % 12== 9){
			for(i = n / 2 + 3; i <= n; i++){
				v[i-2] = v[i];
			}
			v[n-1] = 1;
			v[n] = 3;
		}
		for(i = 1; i <= n; i++){
			fout<< i <<" "<< v[i] <<"\n";
		}
	}
	else{
		if(n == 1 || n == 2){
			fout<< 1 <<"\n"<< 1 <<" "<< 1 <<"\n"; 
		}
		else{
			fout<< 2 <<"\n"<< 1 <<" "<< 1 <<"\n"<< 2 <<" "<< 3 <<"\n";
		}
	}
	return 0;
}