Cod sursa(job #3244573)

Utilizator David_Popa123Popa David Matei David_Popa123 Data 25 septembrie 2024 16:44:35
Problema Problema Damelor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 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;

int verif( int k ) {
    int i = 1;
    while( i < k && abs( v[i] - v[i + 1] ) > 1 )
        i++;
    return ( i == k );
}

void bkt( int k ) {
    int j, i;
    if( k >= n + 1 && verif( k ) ) {
        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] ) {
                f[i] = 1;
                v[k] = i;
                bkt( k + 1 );
                f[i] = 0;
            }
        }
    }
}

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