Cod sursa(job #1722530)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 28 iunie 2016 12:34:13
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <fstream>
#include <bitset>

using namespace std;

int x[20], n,k;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int cont(int pas) {
    // testam daca elemntul pus pe pozitia curenta pas
    // alaturi de elemtele puse pe pozitiile 1..pas-1
    // poate duce la solutie
    // consideram ca pe acelea le-am testa la randul lor cu aceeasi functie cont;
    for (int i=1;i<pas;i++)
        if (x[i] == x[pas])
            return 0;
    return 1;
}

void back(int pas) {
// aici folosim pas mai mare numarul de elemente ale unei solutii
//
    if (pas > n) {
        for (int i=1;i<=n;i++)
            fout<<x[i]<<" ";
        fout<<"\n";
        return;
    }
    // forul parcurge toate elementele posibile la o anumita
    // pozitie pas din solutie
    for (int i=1;i<=n;i++) {
        x[pas] = i;
        if ( cont(pas) == 1 ) {
            // daca elementul incercat pe pozita pas poate duce la solutie alaturi de
            // cel eincercate deja pe pozitiile 1..pas-1
            back(pas+1);
        }
    }

}



int main () {
    fin>>n>>k;
    back(1);
    return 0;
}