Cod sursa(job #1873802)

Utilizator dumitru123Patularu Mihai dumitru123 Data 9 februarie 2017 13:52:32
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
# include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
#define nmax 33
int a[nmax],niv[nmax],col[nmax],DS[nmax],DP[nmax];
int i,j,n,ok,cnt;
void afis()
{
    for (i=1; i<=n; ++i)
        g<<niv[i]<<" ";
    g<<"\n";
}
void back (int k)
{
    int i,dp,ds;
    if (k==n+1)
    {
        if (!cnt)afis();
        cnt++;
    }
    else
    {
        for (i=1; i<=n; ++i)
        {
            if (col[i]==0)
            {
                dp=(n-k)+i;
                ds=(n-i)+(n-k+1);
                if (DP[dp]==0 && DS[ds]==0)
                {
                    DP[dp]=1;
                    DS[ds]=1;
                    col[i]=1;
                    niv[k]=i;
                    col[i]=1;
                    back(k+1);
                    DP[dp]=0;
                    DS[ds]=0;
                    col[i]=0;
                    niv[k]=0;
                    col[i]=0;
                }
            }
        }
    }
}
int main ()
{
    f>>n;
    back (1);
    g<<cnt<<"\n";
    return 0;
}