Cod sursa(job #2849263)

Utilizator sireanu_vladSireanu Vlad sireanu_vlad Data 14 februarie 2022 19:31:59
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
using namespace std;

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

int n, a[14], t, m;
bool f[14], d1[28], d2[28];

void afis()
{
	if(t == 1)
	{
		for(int i = 1; i <= n; ++i)
			out << a[i] << ' ';
		out << '\n';
	}
}

void sol(int k)
{
	if(k > n) t++, afis();
	else
	{
		for(int i = 1; i <= n; ++i)
			if(!(f[i] || d1[n+k-i] || d2[i+k]))
			{
				a[++m] = i, f[i] = d1[n+k-i] = d2[i+k] = 1; 
				sol(k+1);
				m--, f[i] = d1[n+k-i] = d2[i+k] = 0;
			}
	}
}

int main()
{
	in >> n;
	sol(1);
	out << t;
	return 0;
}