Cod sursa(job #2421869)

Utilizator 3l33tStefan Scoarta 3l33t Data 16 mai 2019 14:59:21
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.27 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("permutari.in");
ofstream out("permutari.out");
// Opgave
//
// Alle permutatie van de verzameling {1,2,3 ... N}
// Met getalen van N groot zonder herhalingen
//

// N>9 is niet aangeraden want het zou een heel grrot bestand dat je niet meer kunt openen


int n;
int nummer[16];
int a[16];

bool validate(int c){
    bool ok = 1;
    for(int i = 1; i < c; ++i){ // onderzoek of de cijfer nog een keer in de getaal vindt
        if(nummer[i] == nummer[c]){
            ok = 0; // een cijfer befind  zich nog een keer dus dit is niet goede oplosiingen kunnen opleveren
        }
    }
    return ok;
}

void backtracking(int c){

    if(c-1==n){  // aantal cijfers in de getal bereikt
        for(int i = 1; i <= n; ++i){
            out << nummer[i] << " ";
        }
        out << "\n";
        return;
    }

    for(int i = 1; i <=n; i++)  // ga door alle mogelijke toevoegingen{
        if(!a[i]){// onderzoek of we verder kunnen gaan met deze cijfer
            nummer[c] = i; // voeg de nieuwe cijfer toe
            a[i] = 1;
            backtracking(c+1);
            a[i] = 0;

        }
    }




int main(){
    in >> n;
    backtracking(1);
    return 0;
}