Cod sursa(job #1016873)

Utilizator Alina_MariaMateescu Adina Lenuta Maria Alina_Maria Data 26 octombrie 2013 20:59:38
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <stdio.h>
#include <vector>

using namespace std;

int n;
int solution[10];

void afisareSolutie(){
    int i;
    for(i = 1; i <= n - 1; ++i)
        printf("%d ", solution[i]);
    printf("%d\n", solution[i]);
}

bool contineNumar(int k){
    for(int i = 1; i <= k - 1; ++i)
        if (solution[k] == solution[i]) return true;
    return false;
}

void backtrack(int k) {
    if (k > n) afisareSolutie();
    else {
        for(int i = 1; i <= n; ++i) {
            solution[k] = i;
            if (!contineNumar(k)) backtrack(k + 1);
        }
    }
}

int main() {
    freopen("permutari.in", "r", stdin);
    freopen("permutari.out", "w", stdout);
    scanf("%d", &n);
    backtrack(1);
}