Cod sursa(job #1852574)

Utilizator radu.bRadu Brumariu radu.b Data 20 ianuarie 2017 22:29:17
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>

int N;
int solutie[10];

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

int valid(int p)
{
    for(int i = 1; i < p; i++) {
        if(solutie[p] == solutie[i]) return 0;
    }
    return 1;
}

void backtrack(int k) {
        for(int i = 1; i <= N; i++) {
            solutie[k] = i;
            if(valid(k)) {
                if(k == N)
                    afisare();
                else
                    backtrack(k+1);
            }
        }
}

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

    scanf("%d", &N);

    backtrack(1);
    return 0;
}