Cod sursa(job #1766380)

Utilizator hyper2599andrei andrei hyper2599 Data 27 septembrie 2016 21:39:36
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include<cmath>
#include<string.h>
using namespace std;

int x[100],n;
void init(int k)
{
    x[k]=0;
}
int exista (int k)
{return x[k]<n;
}
int cont (int k)
{int ok,i;
ok=1;
    for(i=1;i<=k-1;i++)
        if(x[k]==x[i] || abs(x[k]-x[i])==(k-i))ok=0;
    return ok;
}
    int solutie(int k)
    {return k==n;
    }
    void tipar (int k)
    {int i;
        for(i=1;i<=k;i++)
   {cout<<"coloana "<<x[i]<<' ';}
      cout<<endl;

    }
    void bkt()
    {int k;k=1;init(k);
    while(k>0)
        if (exista(k)){x[k]=x[k]+1;
    if(cont(k)) if (solutie(k)) tipar(k);
    else{k=k+1;init(k);}
        }
    else k=k-1;
    }

    int main()
    {
        cin>>n;
        bkt();
    }