Pagini recente » Cod sursa (job #987639) | Cod sursa (job #2096506) | Cod sursa (job #3173561) | Cod sursa (job #1727670) | Cod sursa (job #1137257)
#include<fstream>
#include<math.h>
using namespace std;
int n,v[13];
int sol;
int b = 1;
ifstream in("damesah.in");
ofstream out("damesah.out");
inline void wrt(int c)
{
if(c)
{
for(int i = 1 ; i<=n ; i++)
out<<v[i]<<" "; }
sol++;
}
int valid(int k)
{
int i;
for(i=1 ; i<=k-1 ; i++)
if ((v[i]==v[k]) || (abs(k-i)==abs(v[k]-v[i]))) return 0;
return 1;
}
void back(int m)
{
if(m==n+1) {wrt(b);b=0;}
else
{
for(int i = 1 ; i<=n ; i++)
{
v[m]=i;
if(valid(m)) back(m+1);
}
}
}
int main()
{
in>>n;
in.close();
back(1);
out<<"\n"<<sol;
out.close();
return 0;
}