Cod sursa(job #2334363)

Utilizator andysoloAndrei Solo andysolo Data 2 februarie 2019 15:59:18
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include<cstdio>
#include <vector>
#include <cstring>
/* #include "Euclid.cpp"
#include "EuclidExtended.cpp"
#include "LCS.cpp"
#include "RabinKarp.cpp"
#include "KMP.cpp"
#include "Arbint.cpp"
#include "Eratosthenes.cpp" */
using namespace std;

class Permutations {

#define NMAX 10

private:

    int N;
    int v[NMAX];
    int f[NMAX];

    void print() {
        for (int i = 1; i <= N; i++)
            printf("%d ", v[i]);
        printf("\n");
    }

    void bk(int k) {
        if (k == N + 1)
            print();
        else
            for (int i = 1; i <= N; i++)
                if (!f[i]) {
                    f[i] = 1;
                    v[k] = i;
                    bk(k + 1);
                    f[i] = 0;
                }
    }

public:
    void permutations_main() {
        freopen("permutari.in", "r", stdin);
        freopen("permutari.out", "w", stdout);

        scanf("%d", &N);

        bk(1);
    }


} permutations;

int main()
{
    permutations.permutations_main();
    return 0;
}