Pagini recente » Cod sursa (job #1706217) | Cod sursa (job #1310245) | Cod sursa (job #2069007) | Cod sursa (job #1236140) | Cod sursa (job #1409089)
#include <fstream>
#include <iostream>
using namespace std;
bool A[30],B[30],C[30],D[30];
int X[15],N,rs = 0;
void back(int k)
{
if(k <= N)
{
for(int i=1; i<=N; i++)
{
if(!A[k] && !B[i] && !C[k+i] && !D[k-i+15])
{
A[k] = B[i] = C[k+i] = D[k-i+15] = true;
if(X[N] == 0) X[k] = i;
back(k+1);
A[k] = B[i] = C[k+i] = D[k-i+15] = false;
}
}
}
else rs++;
}
int main()
{
int i;
ifstream f("damesah.in");
ofstream g("damesah.out");
f>>N;
back(1);
for(i = 1; i<=N; i++)
{
g<< X[i] << ' ';
}
g<< '\n' << rs;
return 0;
}