Cod sursa(job #1652219)

Utilizator LazarAndreiLazar Andrei Teodor LazarAndrei Data 14 martie 2016 19:39:12
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream> // PERMUTĂRI
using namespace std;
ifstream r ("permutari.in");
ofstream w ("permutari.out");

int n,v[20] ; //n-nr. de elemente, v[20]-vectorul în care construim soluţia
int valid(int k);
int solutie(int k);
void afisare(int k);
void BK(int k);
int main()
{
    r>>n; //se citeşte n
    BK(1);

    return 0; //apelăm funcţia BK pentru completarea poziţiei 1 din vectorul v
}


void BK (int k)
{
    int i;

    for(i = 1 ; i <= n ; ++ i)
    {
        v[k] = i;
        if(valid(k))
        {
            if(solutie (k))
                afisare(k);
            else
                BK(k + 1);
        }
    }
}
int valid (int k)
{
    int i;
    for(i = 1 ; i <= k - 1; ++ i)
        if(v[i] == v[k] )
        return 0;

    return 1;

}

int solutie (int k)
{
    if(k == n)
        return 1;
    return 0;
}

void afisare (int k)
{
    int i;
    for(i  = 1 ; i <= k ; ++ i)
        w<<v[i]<<" ";
    w<<endl;
}