Cod sursa(job #1693516)

Utilizator DarnAndrei Nedelcu Darn Data 23 aprilie 2016 12:10:22
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <stdlib.h>
#include <iostream>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
int v[15],a=0,n;//v[line]=column
bool first=true;
void bt(int x)
{
    if (x>n)
    {
        if (first)
        {
            first=false;
            for (int i=1;i<=n;i++)
                out<<v[i]<<" ";
            out<<"\n";
        }
        a++;
    }
    else
    {
        bool k;
        for (int i=1;i<=n;i++)//column
        {
            k=true;
            for (int j=1;j<x;j++)//line
                if ( (i==v[j]) || (x-j==abs(v[j]-i)) )
                {
                    k=false;
                    break;
                }
            if (k) {v[x]=i; bt(x+1);}
        }
    }
}
int main()
{
    in>>n;
    bt(1);
    out<<a;
    return 0;
}