Cod sursa(job #1094136)

Utilizator raulstoinStoin Raul raulstoin Data 28 ianuarie 2014 22:19:12
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>

#define NMAX 15

using namespace std;

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

int n,sol,v[NMAX],sw;
bool c[NMAX],d[2][2*NMAX];

void back(int k)
{
	for(int i=1;i<=n;i++)
	{
		if(c[i] || d[0][n-k+i] || d[1][k+i-1])
			continue;
		v[k]=i;
		c[i]=d[0][n-k+i]=d[1][k+i-1]=1;
		if(k==n)
		{
			if(!sw)
			{
				sw=1;
				for(int i=1;i<n;i++)
					fout<<v[i]<<' ';
				fout<<v[n]<<'\n';
			}
			sol++;
		}
		else
			back(k+1);
		c[i]=d[0][n-k+i]=d[1][k+i-1]=0;
	}
}

int main()
{
	fin>>n;
	back(1);
	fout<<sol;
	return 0;
}