Cod sursa(job #1470068)

Utilizator icansmileSmileSmile icansmile Data 10 august 2015 12:51:08
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream f("damesah.in",ios::in);
ofstream g("damesah.out",ios::out);
int n,sol,pozitie[14];
bool gasit, coloana[14],diagonala1[28],diagonala2[28];
int back(int k)
{
    int i;
    if(k==n+1)
    {
              if(!gasit)
              {
                        for(i=1;i<=n;i++)
                        g<<pozitie[i]<<' ';
              gasit=true;}
              sol++;}
    else
    for(i=1;i<=n;i++)
    if(!coloana[i] && !diagonala1[n-k+i] && !diagonala2[k+i-1])
    {
                   pozitie[k]=i;
                   coloana[i]=diagonala1[n-k+i]=diagonala2[k+i-1]=true;
                   back(k+1);
                   coloana[i]=diagonala1[n-k+i]=diagonala2[k+i-1]=false;}}
int main()
{
    f>>n;
    back(1);
    g<<'\n'<<sol;
    return 0;}