Cod sursa(job #1124008)

Utilizator margikiMargeloiu Andrei margiki Data 26 februarie 2014 10:54:35
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
# include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[50],niv[50],col[50],DS[50],DP[50];
int i,j,n,ok,VV;
void back (int k)
{
    int i,dp,ds;
    if (k==n+1)
    {
        ++VV;
        if (ok==0)
        {
            for (i=1; i<=n; ++i)
                g<<niv[i]<<" ";
            g<<"\n"; ok=1;
        }
    }
    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<<VV<<"\n";
    return 0;
}