Pagini recente » Cod sursa (job #1796106) | Cod sursa (job #1291839) | Cod sursa (job #463934) | Cod sursa (job #1372503) | Cod sursa (job #2002106)
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,v[102],nrsol;
inline void init(int k)
{
v[k]=0;
}
inline bool succesor(int k)
{
if (v[k]<n)
{
v[k]++;
return 1;
}
return 0;
}
inline bool valid(int k)
{
for (int i=1;i<k;i++)
if (k-i==v[k]-v[i] || k-i==v[i]-v[k] || v[k]==v[i])
return 0;
return 1;
}
inline bool sol(int k)
{
return (k==n);
}
inline void afisare()
{
for (int i=1;i<=n;i++)
fout << v[i] << " ";
fout << "\n";
}
inline void backtracking(int k)
{
init(k);
while (succesor(k))
if (valid(k))
if (sol(k))
{
if(!nrsol) afisare();
nrsol++;
}
else backtracking(k+1);
}
int main()
{
fin >> n;
backtracking(1);
fout << nrsol;
return 0;
}