Cod sursa(job #1876692)

Utilizator medicinedoctoralexandru medicinedoctor Data 12 februarie 2017 15:55:11
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>

using namespace std;

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

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

void bk(__int8 k)
{
    if (k==n)
    {
        if (b)
        {
            for (__int8 i=0; i<n; cout << a[i]+1 << ' ',i++);
            cout << '\n';
            b=false;
        }
        x++;
        return;
    }
    for (__int8 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;
}