Pagini recente » Cod sursa (job #2392546) | Cod sursa (job #959417) | Cod sursa (job #2233216) | Cod sursa (job #860531) | Cod sursa (job #1240781)
#include <fstream>
#include <string.h>
#define NMax 15
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, col[NMax], sol[NMax], nrsol, ok;
bool c[NMax], ds[30], dp[30];
inline void back(int k)
{
if (k==n+1) {
if (nrsol==0)
for (int i=1; i<=n; i++)
g << col[i] << " ";
nrsol++;
return;
}
for (int i=1; i<=n; i++) {
if (c[i]==0 && ds[i+k]==0 && dp[n-i+k]==0) {
col[k]=i;
c[i]=1;
ds[i+k]=1;
dp[n-i+k]=1;
back(k+1);
c[i]=0;
ds[i+k]=0;
dp[n-i+k]=0;
}
}
}
int main()
{
f>>n;
back(1);
g<<"\n";
g<<nrsol;
return 0;
}