Cod sursa(job #1118277)

Utilizator gapdanPopescu George gapdan Data 24 februarie 2014 09:36:04
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<cstdio>
using namespace std;
int n,nrsol,st[100],e;
int col[100],dfirst[100],dsec[100],v[100];
void afis()
{
    ++nrsol;
    if (e==0)
    {
        for (int i=1;i<=n;++i) printf("%d ",st[i]);
        e=1;
    }

}
void back(int k)
{
    int i;
    if (k==n+1) afis();
        else
        {
            for (i=1;i<=n;++i)
            {
                if (col[i]==0 && dfirst[i-k+n]==0 && dsec[k+i-1]==0)
                {
                    st[k]=i;
                    col[i]=1;
                    dfirst[i-k+n]=1;
                    dsec[k+i-1]=1;
                    back(k+1);
                    col[i]=0;
                    dfirst[i-k+n]=0;
                    dsec[k+i-1]=0;
                }
            }
        }
}
int main()
{
    freopen("damesah.in","r",stdin);
    freopen("damesah.out","w",stdout);
    scanf("%d",&n);
    for (int i=1;i<=n;++i) v[i]=10000;
    back(1);
    printf("\n%d\n",nrsol);
    return 0;
}