Cod sursa(job #1865808)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 2 februarie 2017 09:16:02
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int v[15];
long long nr;
int n;
bool ok=true;
int modul(int x, int y)
{
    x-=y;
    if(x<0) x*=-1;
    return x;
}
bool valid(int k)
{
    int i;
    for(i=1;i<k;i++)
        if(v[i]==v[k]) return false;
        else if(modul(v[k],v[i])==modul(k,i)) return false;
    return true;
}
void afisare()
{
    for(int i=1;i<=n;i++)
        g<<v[i]<<' ';
    g<<'\n';
}
void rez()
{
    if(ok)
    {
        afisare();
        ok=false;
    }
    nr++;
}
void bkt(int k)
{
    int i;
    for(i=1;i<=n;i++)
    {
        v[k]=i;
        if(valid(k))
        {
            if(k==n) rez();
            else bkt(k+1);
        }
    }
}
int main()
{f>>n;
bkt(1);
g<<nr;

    return 0;
}