Pagini recente » Cod sursa (job #1681272) | Cod sursa (job #1972824) | Cod sursa (job #2939543) | Cod sursa (job #2968699) | Cod sursa (job #2386919)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[15],nr,n;
int valid(int t)
{
int j;
for(j=1; j<t; j++)
{if(fabs(t-j)==fabs(a[t]-a[j])) // daca sunt pe aceeasi coloana
return 0;
if(a[j]==a[t])//nici pe aceeasi coloana
return 0;
}
return 1;
}
int sol(int t)
{
if(t==n)
return 1;
return 0;
}
void afis()
{
int j;
for(j=1; j<=n; j++)
g<<a[j]<<" ";
g<<"\n";
}
void bkt(int x)
{
int i;
for(i=1; i<=n; i++)
{
a[x]=i;
if(valid(x))
if(sol(x))
{nr++;
if(nr==1) afis();
}
else
bkt(x+1);
}
}
int main()
{
f>>n;
bkt(1);
g<<nr;
f.close();
g.close();
return 0;
}