Pagini recente » Borderou de evaluare (job #1004089) | Cod sursa (job #114368) | Cod sursa (job #1564642) | Cod sursa (job #1956193) | Cod sursa (job #2591193)
#include <bits/stdc++.h>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,sol[15],res;
bool use[15],dp[30],ds[30],ok;
void afisare()
{
ok=1;
for(int i=1;i<=n;i++)
g<<sol[i]<<" ";
g<<"\n";
}
void bkt(int k)
{
if(k==n+1)
{
res++;
if(!ok)
afisare();
}
else
{
for(int i=1;i<=n;i++)
{
if(use[i]==0 && !dp[i-k+n] && !ds[i+k-1])
{
sol[k]=i;
use[i]=1;
dp[i-k+n]=1;
ds[i+k-1]=1;
bkt(k+1);
use[i]=0;
dp[i-k+n]=0;
ds[i+k-1]=0;
}
}
}
}
int main()
{
f>>n;
bkt(1);
g<<res;
return 0;
}