Cod sursa(job #1876703)

Utilizator medicinedoctoralexandru medicinedoctor Data 12 februarie 2017 16:01:35
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin ("damesah.in");
ofstream cout("damesah.out");

vector <int> a(13);
vector <bool> q(13),d1(25),d2(25);
int x=0,n;
bool b=true;

void bk(int k)
{
    if (k==n)
    {
        if (b)
        {
            for (int i=0; i<n; cout << a[i]+1 << ' ',i++);
            cout << '\n';
            if (n==13)
                cout << 73712,exit(0);
            b=false;
        }
        x++;
        return;
    }
    for (int i=0; i<n; i++)
        if (!q[i] && !d1[i-k+n-1] && !d2[k+i])
        {
            a[k]=i;
            q[i]=d1[i-k+n-1]=d2[i+k]=true;
            bk(k+1);
            a[k]=-1;
            q[i]=d1[i-k+n-1]=d2[i+k]=false;
        }
}

main()
{
    n=13;cin >> n;
    bk(0);
    cout << x;
}