Cod sursa(job #2162935)

Utilizator AndreiBadescuBadescu Andrei-Octavian AndreiBadescu Data 12 martie 2018 15:53:20
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

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

int n, m, sol, v[13];
bool c[13], d1[25], d2[25];

void bt ( int i )
{
	if ( i == n )
	{
		if ( !sol )
			for ( int j = 0; j < n; ++j )
				fout << v[j] + 1 << " ";

		++sol;
	}

	int j, t1, t2;

	for ( j = 0; j < n; ++j )
		if ( !c[j] )
		{
			t1 = i + j;

			if ( !d1[t1] )
			{
				t2 = i + m - j;

				if ( !d2[t2] )
				{
					c[j] = d1[t1] = d2[t2] = 1;

					v[i] = j;
					bt ( i + 1 );

					c[j] = d1[t1] = d2[t2] = 0;
				}
			}
		}
}

int main()
{
    fin >> n;
    m = n - 1;

    bt(0);

    fout << '\n' << sol;
}