Cod sursa(job #3365790)

Utilizator proflaurianPanaete Adrian proflaurian Data 24 septembrie 2026 11:48:19
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n=3,p[15],C[30],DP[30],DS[30],sol;

void bkt(int lin)
{
    /// CONDITIA DE OPRIRE
    if(lin==n+1)
    {
        sol++;
        if(sol==1)
        {
            for(int i=1;i<=n;i++)
                g<<p[i]<<' ';
            g<<'\n';
        }
        return;
    }
    for(int col=1;col<=n;col++)
    {
        if(C[col])continue;
        if(DP[n+1+lin-col])continue;
        if(DS[lin+col])continue;
        p[lin]=col;
        C[col]=1;
        DP[n+1+lin-col]=1;
        DS[lin+col]=1;
        bkt(lin+1);
        C[col]=0;
        DP[n+1+lin-col]=0;
        DS[lin+col]=0;
    }
}
int main()
{
    f>>n;
    bkt(1);
    g<<sol<<'\n';
    return 0;
}