Cod sursa(job #1857952)

Utilizator jordan1998Jordan jordan1998 Data 26 ianuarie 2017 21:11:12
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
bool as,ev,ok=0;
int n,k,st[15],nrs=0,t;
inline int mod(int a)
{
    if(a<0) return -a;
    return a;
}
inline int succ()
{
    if(st[k]<n)
    {
        st[k]++;
        return 1;
    }
    return 0;
}
inline int valid()
{
    int i;
  for(i=1;i<k;i++)
  {
      if(st[i]==st[k]) return 0;
      if(mod(i-k)==mod(st[i]-st[k])) return 0;

  }
  return 1;
}
inline void tipar()
{
    int i;
    for(i=1;i<=n;i++)
        g<<st[i]<<" ";
    g<<'\n';
}
inline void bt()
{
    st[1]=0;k=1;
    while(k>0)
    {
        do{
            as=succ();
            if(as) ev=valid();
        }while(as&&!ev);
        if(as){
            if(k==n) {nrs++;if(!ok) {ok=1;tipar();}}
            else {k++;st[k]=0;}
        }
        else k--;
    }
}
int main()
{
    f>>n;
    bt();
    g<<nrs;
}