Cod sursa(job #1100664)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 7 februarie 2014 11:48:03
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, x[20], v[20], nr;

void afisare(){
    for(int i=1; i<=n; i++)
        g<<x[i]<<' ';
    g<<"\n";
}

inline int modul(int x){
    return (x>-x?x:-x);
}

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

void back(int k){
    if(k==n+1)
    {
        if(nr==0)
            afisare();
        nr++;
    }
    else
    {
        for(int i=1; i<=n; i++)
            if(v[i]==0){
                x[k]=i;
                if(verif(k))
                {
                    v[i]=1;
                    back(k+1);
                    v[i]=0;
                }
            }
    }
}

int main(){
    f>>n;
    back(1);
    g<<nr<<"\n";
    return 0;
}