Cod sursa(job #1979208)

Utilizator jason2013Andronache Riccardo jason2013 Data 9 mai 2017 22:24:05
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<bits/stdc++.h>
using namespace std;

ofstream g("permutari.out");

void read(int &);
void print_array(int );
void backtracking(int, int );

const int n_max = 20;
bitset<n_max>viz;
int arr[n_max];

int main()
{
    int nbInput;
    read(nbInput);
    backtracking(1, nbInput);
    return 0;
}

void read(int& nbInput)
{
    ifstream f("permutari.in");
    f >> nbInput;
    f.close();
}

void print_array(int nbInput)
{
    for(int i = 1; i <= nbInput; ++i )
        g << arr[i] <<" ";
    g <<'\n';

}

void backtracking(int index, int nbInput)
{
    if(index == nbInput+1){
            print_array(nbInput);
        return;
    }

    for(int k = 1; k <= nbInput; ++ k)
    {
        if(viz[k])
            continue;

        arr[index] = k;
        viz[k] = 1;
        backtracking(index+1, nbInput);
        viz[k] = 0;
    }
}