Pagini recente » Cod sursa (job #2586231) | Cod sursa (job #1709611) | Cod sursa (job #2589671) | Cod sursa (job #2583334) | Cod sursa (job #1880763)
#include <fstream>
#define NMAX 14
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int st[NMAX], n;
bool coloana[NMAX], diag1[NMAX * 2], diag2[NMAX * 2];
int nrsol;
void Plaseaza_Regina(int linie)
{
if ( linie == n + 1 )
{
++nrsol;
if ( nrsol == 1 )
{
for ( int i = 1 ; i <= n ; ++i )
fout << st[i] << " ";
fout << '\n';
}
}
else
for ( int i = 1 ; i <= n ; ++i )
if ( !coloana[i] && !diag1[i - linie + n - 1] && !diag2[linie + i] )
{
st[linie] = i;
coloana[i] = diag1[i - linie + n - 1] = diag2[linie + i] = true;
Plaseaza_Regina( linie + 1 );
coloana[i] = diag1[i - linie + n - 1] = diag2[linie + i] = false;
}
}
int main ()
{
fin >> n;
Plaseaza_Regina(1);
fout << nrsol;
return 0;
}