Cod sursa(job #1998699)

Utilizator passwordCiaciru Ana Maria password Data 8 iulie 2017 19:58:03
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#define nmax 15
using namespace std;
ifstream fin("regine.in");
ofstream fout("regine.out");
int x[nmax],n; ///back
bool viz[nmax];
int nr; ///nr sol

void Write()
{int i;
 for(i=1;i<=n;i++)
    fout<<x[i]<<" ";
 fout<<endl;
}

inline int mod(int x)
{if(x<0) return -x;
 return x;}

bool Valid(int k)
{int i;
 for(i=1;i<k;i++)
    if(k-i==mod(x[k]-x[i])) return 0;
 return 1;
}

void Back(int k)
{int i;
 for(i=1;i<=n;i++)
    if(viz[i]==0)
      {x[k]=i; viz[i]=1;
       if(Valid(k))
         if(k==n)
           {nr++;
            if(nr==1) Write();
           }
         else Back(k+1);
       viz[i]=0;
      }

}

int main()
{fin>>n;
 Back(1);
 fout<<nr<<endl;
 return 0;
}