Pagini recente » Cod sursa (job #2945607) | Cod sursa (job #2276632) | Cod sursa (job #801327) | Cod sursa (job #2569136) | Cod sursa (job #1810550)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int nr, n, vp[30], vs[30], vc[15];
vector <int> coloana;
bool verif(int l, int c)
{
if(vc[c]==1 || vp[l-c+n]==1 || vs[l+c-1]==1)
return false;
return true;
}
void backtracking(int l)
{
for(int i=1;i<=n;i++)
{
if(verif(l, i))
{
vc[i]=vp[l-i+n]=vs[l+i-1]=1;
if(nr==0)
coloana.push_back(i);
if(l==n)
{
if(nr==0){
for(unsigned int j=0;j<coloana.size();j++)
g<<coloana[j]<<' ';
g<<'\n';
}
nr++;
}
else
backtracking(l+1);
if(nr==0)
coloana.pop_back();
vc[i]=vp[l-i+n]=vs[l+i-1]=0;
}
}
}
int main()
{
f>>n;
backtracking(1);
g<<nr;
return 0;
}