Cod sursa(job #1945897)

Utilizator raulmuresanRaul Muresan raulmuresan Data 29 martie 2017 18:56:51
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include<fstream>
#include<vector>
#include<string>
#define modulo 666013

using namespace std;

ifstream fin("damesah.in");
ofstream fout("damesah.out");
const int NMAX = 20;

string sir;
int i, n, k, j, sol;
int viz[NMAX], st[NMAX], coloana[NMAX], diag_principal[2*NMAX], diag_secundar[2*NMAX];

void back(int vf)
{
    if(vf == n + 1)
    {
        if(sol == 0)
        {
            for(int i = 1; i <= n; i++)
            {
                fout << st[i] << " ";
            }
            fout <<"\n";
        }
        sol++;
        return;
    }
    for(int i = 1; i <= n; i++)
    {
        if(viz[i] == 0 && diag_principal[vf - i + n] == 0 && diag_secundar[i + vf] == 0)
        {
            viz[i] = diag_principal[vf - i + n] = diag_secundar[i + vf] = 1;
            st[vf] = i;
            back(vf + 1);
            viz[i] = diag_principal[vf - i + n] = diag_secundar[i + vf] = 0;
        }
    }
}

int main()
{
    fin >> n;
    back(1);
    fout << sol << "\n";
}