Cod sursa(job #2002802)

Utilizator Alex18maiAlex Enache Alex18mai Data 20 iulie 2017 19:52:09
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>

using namespace std;

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

int Perm[15];
bool used[15];
int d1[35];
int d2[35];

void backt(int q, int n, int &s){
    if (q == n+1){
        s++;
        if (s==1){
            for (int i=1; i<=n; i++){
                cout<<Perm[i]<<" ";
            }
            cout<<'\n';
        }
        return;
    }
    for (int i=1; i<=n; i++){
        if (used[i] != true && d1[q - i + n]==0 && d2[i + q]==0) {
            used[i] = true;
            d1[q - i + n]++;
            d2[i + q]++;
            Perm[q] = i;
            backt(q+1, n, s);
            used[i] = false;
            d1[q - i + n]--;
            d2[i + q]--;
        }
    }
}

int main() {
    int n;
    cin>>n;
    int s=0;
    backt(1,n,s);
    cout<<s;
    return 0;
}