Cod sursa(job #1740309)

Utilizator AplayLazar Laurentiu Aplay Data 11 august 2016 13:47:56
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std;

void printSolution(int* answer, int maxLevel) {
    for (int it = 0; it < maxLevel; ++it)
        printf("%d ", answer[it]);
    printf("\n");
}

void permutations(int* answer, int* visited, int level, int maxLevel) {
    if (level == maxLevel) {
        printSolution(answer, maxLevel);
        return;
    }

    for (int it = 1; it <= maxLevel; ++it) {
        if (!visited[it]) {
            answer[level] = it;
            visited[it] = 1;
            permutations(answer, visited, level + 1, maxLevel);
            visited[it] = 0;
        }
    }
}

int main() {
    int N, answer[10], visited[10];

    freopen("permutari.in", "r", stdin);
    freopen("permutari.out", "w", stdout);

    scanf("%d", &N);

    memset(visited, 0, sizeof(visited));
    permutations(answer, visited, 0, N);

    fclose(stdin);
    fclose(stdout);

    return 0;
}