Cod sursa(job #1012805)

Utilizator sziliMandici Szilard szili Data 19 octombrie 2013 17:38:47
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int n;
int solution[10];

int valid(int level, int value){
    for (int i=1; i<level; i++){
        if (solution[i] == value){
            return 0;
        }
    }

    return 1;
}

void backtrack(int level){

    if (level > n){
        for (int i=1; i<=n; i++){
            printf("%d ", solution[i]);
        }
        printf("\n");
    } else {

        for (int i=1; i<=n; i++){
            if (valid(level, i)){
                solution[level] = i;
                backtrack(level+1);
            }
        }
    }

}

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

    scanf("%d", &n);

    backtrack(1);

    return 0;
}