Cod sursa(job #2481433)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 26 octombrie 2019 21:36:29
Problema Problema Damelor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
using namespace std;

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

int contor = 0;
bool write = 1;

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-1])
		{
			col[i] = 1;
			diag1[i-poz+n] = 1;
			diag2[i+poz-1] = 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;
	fin.close();
	fout << "\n" << contor;
	fout.close();
}