Pagini recente » Cod sursa (job #2112729) | Cod sursa (job #1028797) | Cod sursa (job #2026282) | Cod sursa (job #1021576) | Cod sursa (job #1751925)
#include <iostream>
#include <fstream>
using namespace std;
int n,sol[14],nr=0;
ifstream in("damesah.in");
ofstream out("damesah.out");
int abs(int a){
if(a>=0)
return a;
return a*(-1);
}
int valid(int k){
for(int i=1;i<k;i++){
if(sol[i] == sol[k] || (abs(sol[i]- sol[k]) == abs(i-k)))
return 0;
}
return 1;
}
void back(int k){
if(k == n+1){
nr++;
if(nr==1){
for(int i=1;i<=n;i++)
out<<sol[i]<<" ";
out<<"\n";
}
}
else{
sol[k]=0;
while(sol[k]<n){
sol[k]++;
if(valid(k))
back(k+1);
}
}
}
int main()
{
in>>n;
back(1);
out<<nr;
in.close();
out.close();
return 0;
}