Cod sursa(job #1093139)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 27 ianuarie 2014 19:16:15
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int N,x[20],Sol,Use[20],DP[20],DS[20];

void afisare()
{
    for(int i=1;i<=N;i++)
        fout<<x[i]<<" ";
    fout<<"\n";
}
void Back(int k)
{
    int i;
    for(i=1;i<=N;i++)
        {
            x[k]=i;
            if(!Use[i]&&!DP[i - k + N - 1]&&!DS[i+k])
                if(k==N)
                    {
                        if(!Sol)
                            afisare();
                        Sol++;
                    }
                else
                {
                    Use[i]=1;
                    DS[i+k]=1;DP[i - k + N - 1]=1;
                    Back(k+1);
                    Use[i]=0;
                    DS[i+k]=0;DP[i - k + N - 1]=0;
                }

        }
}
int main()
{
    fin>>N;
    Back(1);
    fout<<Sol<<"\n";
    return 0;
}