Cod sursa(job #1922732)

Utilizator nicu_serteSerte Nicu nicu_serte Data 10 martie 2017 18:40:04
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n, st[15], nrsol=0, sol[15];
void solutie()
{
    nrsol++;
    if(nrsol==1)
        for(int i=1; i<=n; i++)
            sol[i]=st[i];
}
bool valid(int k)
{
    for(int i=1; i<k; i++)
        if(st[i]==st[k] || k-i==abs(st[k]-st[i]))
            return false;
    return true;
}
void bt(int k)
{
    if(k==n+1)
    {
        solutie();
        return;
    }
    for(int i=1; i<=n; i++)
    {
        st[k]=i;
        if(valid(k))
            bt(k+1);
    }
}
int main()
{
    fin>>n; fin.close();
    bt(1);
    fout<<nrsol<<'\n';
    for(int i=1; i<=n; i++)
        fout<<sol[i]<<' ';
    fout<<'\n'; fout.close();
    return 0;
}