Cod sursa(job #1711557)

Utilizator AlexTheDagonBogdan Tudor AlexTheDagon Data 31 mai 2016 17:46:12
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>

using namespace std;
int a[100][100],n,c[100],l[100],d=0,sem=0,m,dgs[100],dgd[100];
void bk(int i,int j)
{
    if(i>n && d==n)
    {
        if(sem==0)
        {
            for(int l=1;l<=n;++l){
                for(int k=1;k<=n;++k)if(a[l][k]==1)cout<<k<<" ";
            }
            cout<<'\n';
            sem=1;
        }
        m++;
        return;
    }
    if(i>n)return;
    if(j>n)
    {
        bk(i+1,1);
        return;
    }
    if(c[j]==0 && l[i]==0 && dgs[2*n-j+i]==0 && dgd[i+j]==0)
    {
        c[j]=a[i][j]=1;
        dgs[2*n-j+i]=1;
        dgd[i+j]=1;
        l[i]=1;
        d++;
        bk(i+1,1);
        l[i]=0;
        d--;
        dgd[i+j]=0;
        dgs[2*n-j+i]=0;
        c[j]=a[i][j]=0;
    }
    bk(i,j+1);
}
int main()
{
    cin>>n;
    bk(1,1);
    cout<<m;
    return 0;
}