Pagini recente » Cod sursa (job #428929) | Cod sursa (job #2294874) | Cod sursa (job #298935) | Cod sursa (job #1418469) | Cod sursa (job #1364664)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <map>
#include <set>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int i,j,d1[50],d2[50],c[15],s[15],nrsol,prima=1,n;
void validare()
{
if(prima)
{prima=0;
for(i=1;i<=n;i++)
g<<s[i]<<" ";
g<<'\n';
}
nrsol++;
}
void back(int nivel)
{
for(int j=1;j<=n;j++)
if(!c[j]&&!d1[nivel-j+15]&&!d2[j+nivel])
{
s[nivel]=j;
if(nivel==n)
validare();
else
{
c[j]=1;
d2[j+nivel]=1;
d1[nivel-j+15]=1;
back(nivel+1);
d1[nivel-j+15]=0;
d2[j+nivel]=0;
c[j]=0;
}
}
}
int main()
{
f>>n;
back(1);
g<<nrsol;
return 0;
}