Cod sursa(job #3244580)

Utilizator David_Popa123Popa David Matei David_Popa123 Data 25 septembrie 2024 17:02:45
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin( "damesah.in" );
ofstream fout( "damesah.out" );

#define MAXN 13

int v[MAXN + 1], n, f[MAXN + 1], gasit, ans, ds[2 * MAXN + 1], dp[2 * MAXN + 1];

void bkt( int k ) {
    int j, i;
    if( k >= n + 1 ) {
        if( !gasit ) {
            for( j = 1; j <= n; j++ )
                fout << v[j] << ' ';
            fout << '\n';
            gasit = 1;
        }
        ans++;
    } else {
        for( i = 1; i <= n; i++ ) {
            if( !f[i] && !ds[i + k] && !dp[n + k - i] ) {
                f[i] = ds[i + k] = dp[n + k - i] = 1;
                v[k] = i;
                bkt( k + 1 );
                f[i] = ds[i + k] = dp[n + k - i] = 0;
            }
        }
    }
}

int main() {
    fin >> n;
    gasit = ans = 0;
    bkt(1);
    fout << ans;
    return 0;
}