Pagini recente » Cod sursa (job #1011038) | Cod sursa (job #3207497) | Cod sursa (job #612243) | Cod sursa (job #217017) | Cod sursa (job #1251902)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream is("damesah.in");
ofstream os("damesah.out");
int n, x[20], cnt;
void Back(int k);
void Write();
bool Ok(int k);
int main()
{
is >> n;
Back(1);
os << '\n' << cnt;
is.close();
os.close();
return 0;
}
void Back(int k)
{
if(k > n)
{
if(!cnt)
{
Write();
}
cnt++;
return;
}
for(int i = 1; i <= n; ++i)
{
x[k] = i;
if( Ok(k) )
{
Back(k+1);
}
}
}
void Write()
{
for(int i =1; i <= n; ++i)
os << x[i] << ' ';
return;
}
bool Ok(int k)
{
for(int j = 1; j < k; ++j)
{
if(x[k] == x[j]) return false;
if(abs(x[k] - x[j]) == k - j) return false;
}
return true;
}