Cod sursa(job #2183607)

Utilizator laraamy16Cioc Amelia laraamy16 Data 23 martie 2018 11:52:53
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, x[15], nr;
int col[15], d1[28], d2[28];
void afis()
{
    for(int i = 1; i <= n; i++)
        g << x[i] << ' ';
    g << endl;
}
void backt(int k)
{
    for(int i = 1; i <= n; i++)
    {
        x[k] = i;
        if(col[i] == 0 && d1[k + i - 1] == 0 && d2[n - k + i] == 0) //valid
        {
            if(k == n)
            {
                if(nr == 0)afis();
                nr++;
            }
            else
            {
                col[i] = d1[k + i - 1] = d2[n - k + i] = 1;
                backt(k + 1);
                col[i] = d1[k + i - 1] = d2[n - k + i] = 0;
            }
        }
    }
}
int main()
{
    f >> n;
    backt(1);
    g << nr;
    return 0;
}