Cod sursa(job #1182806)

Utilizator acomAndrei Comaneci acom Data 7 mai 2014 19:06:31
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<cstdio>
using namespace std;
int n,sol,st[32];
bool ap[32],a[32],b[32],*d1=a+16,*d2=b+16;
void afis()
{
    int i;
    for (i=1;i<=n;++i)
        printf("%d ",st[i]);
    printf("\n");
}
void back(int k)
{
    int i;
    for (i=1;i<=n;++i)
        if (!ap[i] && !d1[i-k] && !d2[n+1-i-k])
        {
            st[k]=i;
            ap[i]=d1[i-k]=d2[n+1-i-k]=true;
            if (k<n) back(k+1);
            else if (k==n)
            {
                ++sol;
                if (sol==1) afis();
            }
            ap[i]=d1[i-k]=d2[n+1-i-k]=false;
        }
}
int main()
{
    freopen("damesah.in","r",stdin);
    freopen("damesah.out","w",stdout);
    scanf("%d",&n);
    back(1);
    printf("%d\n",sol);
    return 0;
}