Cod sursa(job #3249770)

Utilizator Andreea3425Diaconu Andreea Andreea3425 Data 17 octombrie 2024 19:19:42
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

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

#define N 13

int v[N+1], f[N+1], fdp[2*N+1], fds[2*N+1];
int p;

void aranjamente(int n, int pos){
    int i;
    if (pos==n+1){
        p++;
        if (p==1){
            for (i=1; i<=n; i++)
                cout << v[i] << ' ';
            cout << '\n';
        }
    }
    for (i=1; i<=n; i++)
        if (f[i]==0 &&fdp[i+pos]==0 && fds[n-i+pos]==0){
            v[pos]=i;
            f[i]=fdp[i+pos]=fds[n-i+pos]=1;
            aranjamente(n, pos+1);
            f[i]=fdp[i+pos]=fds[n-i+pos]=0;
        }
}

int main()
{
    int n;
    cin >> n;
    aranjamente(n, 1);
    cout << p << '\n';
    return 0;
}