Cod sursa(job #1710849)

Utilizator leraValeria lera Data 29 mai 2016 21:08:51
Problema Problema Damelor Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,m[14][14],c[14],diag1[14],diag2[14],cont=0;
void Bk(int i,int j)
{
    if(i>n )
    {
        /*for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                    fout<<m[i][j]<<" ";
                fout<<'\n';
            }
            */
        if(cont==0)
        {
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    if(m[i][j]==1)
                        fout<<j<<" ";
        }

            cont++;
        return;
    }
    if(j==n+1 && i<=n)
        {
         return;
        }
    if(c[j]==0 && !diag1[n-i+j] && !diag2[i+j-1])
    {
        c[j]=m[i][j]=diag1[n-i+j]=diag2[i+j-1]=1;
        Bk(i+1,1);
        c[j]=m[i][j]=diag1[n-i+j]=diag2[i+j-1]=0;
    }
    Bk(i,j+1);


}
int main()
{
    fin>>n;
    Bk(1,1);
    fout<<'\n';
    fout<<cont;
    return 0;
}