Mai intai trebuie sa te autentifici.

Cod sursa(job #2006503)

Utilizator sfechisalin@yahoo.comSfechis Alin [email protected] Data 30 iulie 2017 00:48:23
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, cnt;
vector<int>sol;

bool valid(int k)
{
    if (k == 1)
        return true;

    for (int i = 1; i < k; ++i)
        if (sol[i] == sol[k] || k - i == abs(sol[k] - sol[i]))
            return false;
    return true;
}

void Back(int k)
{
    if (k == N + 1)
    {
        if (cnt < 1)
            for (int i = 1; i < sol.size(); ++i)
                fout << sol[i] << " ";
        cnt++;
        return;
    }
    for (sol[k] = 1; sol[k] <= N; ++sol[k])
        if (valid(k))
            Back(k + 1);
}

int main()
{
    fin >> N;

    sol.resize(N + 1);

    Back(1);

    fout << "\n" << cnt;

    return 0;
}