Pagini recente » Cod sursa (job #2750436) | Cod sursa (job #1586660) | Borderou de evaluare (job #2950149) | Monitorul de evaluare | Cod sursa (job #2672133)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int sol, n;
int col[50], diag[50], diag2[50], v[50];
void back(int k)
{
if(k == n + 1)
{
if(sol == 0)
{
for(int i = 1; i <= n; i++)
fout << [i] << " ";
fout << endl;
}
sol++;
return;
}
for(int i = 1; i <= n; i++)
if(col[i] == 0 && diag1[i - k + n] == 0 && diag2[2 * n - i - k + 1] == 0)
{
col[i] = 1;
diag1[i - k + n] = 1;
diag2[2 * n - i - k + 1] = 1;
v[k] = i;
back(k + 1);
col[i] = 0;
diag1[i - k + n] = 0;
diag2[2 * n - i - k + 1] = 0;
}
}
int main()
{
fin >> n;
back(1);
fout << sol << endl;
return 0;
}