Pagini recente » Cod sursa (job #3272674) | Cod sursa (job #973958) | Arhiva de probleme | Cod sursa (job #335841) | Cod sursa (job #1714020)
#include <cstdio>
using namespace std;
FILE *fin=fopen ("damesah.in","r");
FILE *fout=fopen ("damesah.out","w");
int x[14],n,sol;
int modul (int nr){
if (nr<0)
return -nr;
return nr;
}
int cont (int pas){
for (int i=1;i<pas;i++)
if (x[pas]==x[i] || ( pas-i==modul(x[pas]-x[i]) ))
return 0;
return 1;
}
void back (int pas){
if (pas>n){
sol++;
if (sol==1){
for (int i=1;i<=n;i++)
fprintf (fout,"%d ",x[i]);
fprintf (fout,"\n");
}
}
else for (int i=1;i<=n;i++){
x[pas]=i;
if (cont(pas))
back(pas+1);
}
}
int main()
{
fscanf (fin,"%d",&n);
back(1);
fprintf (fout,"%d",sol);
return 0;
}