Cod sursa(job #2481450)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 26 octombrie 2019 22:03:11
Problema Problema Damelor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
using namespace std;
int contor = 0;
bool write = 1;

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

int perm[15];
int col[15];
int diag1[30];
int diag2[30];

void back(int poz, int n)
{
	if(poz == n+1)
	{
		contor++;
		if(write == 1)
		{
			write = 0;
			for(int i = 1; i <= n; i++)
			{
				fout << perm[i] << " ";
			}
		}
		return;
	}

	for(int i = 1; i <= n; i++)
	{
		if(!col[i] && !diag1[i-poz+n] && !diag2[i+poz])
		{
			col[i] = 1;
			diag1[i-poz+n] = 1;
			diag2[i+poz] = 1;
			perm[poz] = i;
			back(poz+1, n);
			diag2[i+poz-1] = 0;
			diag1[i-poz+n] = 0;
			col[i] = 0;
		}
	}
}

int main()
{
	int n;
	fin >> n;
	back(1,n);
	fout << "\n" << contor;
	fin.close();
	fout.close();
}