Pagini recente » Cod sursa (job #313020) | Cod sursa (job #2052877) | Cod sursa (job #2080896) | Cod sursa (job #659025) | Cod sursa (job #1945897)
#include<fstream>
#include<vector>
#include<string>
#define modulo 666013
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
const int NMAX = 20;
string sir;
int i, n, k, j, sol;
int viz[NMAX], st[NMAX], coloana[NMAX], diag_principal[2*NMAX], diag_secundar[2*NMAX];
void back(int vf)
{
if(vf == n + 1)
{
if(sol == 0)
{
for(int i = 1; i <= n; i++)
{
fout << st[i] << " ";
}
fout <<"\n";
}
sol++;
return;
}
for(int i = 1; i <= n; i++)
{
if(viz[i] == 0 && diag_principal[vf - i + n] == 0 && diag_secundar[i + vf] == 0)
{
viz[i] = diag_principal[vf - i + n] = diag_secundar[i + vf] = 1;
st[vf] = i;
back(vf + 1);
viz[i] = diag_principal[vf - i + n] = diag_secundar[i + vf] = 0;
}
}
}
int main()
{
fin >> n;
back(1);
fout << sol << "\n";
}