Cod sursa(job #1897494)

Utilizator ancabdBadiu Anca ancabd Data 1 martie 2017 14:40:14
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;

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

#define NMAX 101

int n, s[NMAX], d[NMAX], sd[NMAX], v[NMAX], z;

void rez (int k)
{
    if (k == n + 1)
    {
        z++;
        if (z == 1)
        {
            for (int i = 1; i <= n; ++i)fout << s[i] << ' ';
            fout <<'\n';
        }
    }
    else
    {
        for (int i = 1; i <= n; i++)
        {
            if (!v[i] && !d[k + i] && !sd[k - i + 13])
            {
                s[k] = i;
                d[k + i] = sd[k - i + 13] = v[i] = 1;

                rez (k + 1);
                d[k + i] = sd[k - i + 13] = v[i] = 0;
            }
        }
    }
}

int main()
{
    fin >> n;
    rez(1);
    fout << z;
    return 0;
}