Pagini recente » Cod sursa (job #2913436) | Cod sursa (job #2239710) | Cod sursa (job #2072164) | Cod sursa (job #680058) | Cod sursa (job #1545585)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
#define cout fout
int n, s, a[15], diag[30], diag2[30], line[30], ok;
void bac(int k)
{
int i;
if(k == n + 1)
{
s++;
if(ok)
return;
for(i = 1 ; i <= n ; i++)
{
cout << a[i] << " ";
}
cout << "\n";
ok = 1;
}
for(i = 1 ; i <= n ; i++)
{
if(!line[i] && !diag[i + k] && !diag2[i - k + n + 1])
{
a[k] = i;
line[i] = 1;
diag[i + k] = 1;
diag2[i - k + n + 1] = 1;
bac(k + 1);
line[i] = 0;
diag[i + k] = 0;
diag2[i - k + n + 1] = 0;
}
}
}
int main()
{
fin >> n;
bac(1);
cout << s << "\n";
}