Pagini recente » Cod sursa (job #2649229) | Cod sursa (job #615848) | Cod sursa (job #2067375) | Cod sursa (job #554248) | Cod sursa (job #1849444)
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n;
int a[20];
int nr;
void afisare()
{
for(int i=1; i<=n; i++)
{
g<<a[i]<<" ";
}
}
int verificare(int a[], int k)
{
if(a[k-1]+1 == a[k] || a[k-1] == a[k]+1) return 0;
for(int i=1; i<k; i++)
{
if(a[i]==a[k]) return 0;
}
return 1;
}
void backtracking(int k, int &ok)
{
for(int i=1; i<=n; i++)
{
a[k]=i;
if(verificare(a, k))
{
if(k==n)
{
if(ok==0)
{
afisare();
ok=1;
}
nr++;
}
else backtracking(k+1, ok);
}
}
}
int main()
{
int ok=0;
f>>n;
backtracking(1, ok);
g<<endl;
g<<nr;
return 0;
}