Cod sursa(job #1798225)

Utilizator tanasaradutanasaradu tanasaradu Data 4 noiembrie 2016 23:05:03
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,viz[20],st[20],top,sol;
inline bool Verificare(int top,int k)
{
    int i;
    if(viz[k]==1)
        return false;
    for(i=1;i<top;i++)
        if(abs(top-i)==abs(k-st[i]))
        return false;
    i++;
    return true;
}
void Afisare()
{
    int i;
    if(sol==0)
    {
        for(i=1;i<=n;i++)
          fout<<st[i]<<" ";
          fout<<"\n";
    }
}
void Back(int top)
{
    int i;
    if(top==n+1)
    {
        Afisare();
        sol++;
    }
    else
    {
        for(i=1;i<=n;i++)
           if(Verificare(top,i))
           {
               viz[i]=1;
               st[top]=i;
               Back(top+1);
               viz[i]=0;
           }
    }
}
int main()
{
    fin>>n;
    Back(1);
    fout<<sol<<"\n";
    return 0;
}