Cod sursa(job #2604693)

Utilizator lepoartcevPaltineanu Rares-Mihai lepoartcev Data 23 aprilie 2020 11:56:14
Problema Generare de permutari Scor 80
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
#include <stdlib.h>
#define length 10

int n;
int perm[length];

int next(int k) {

    if (perm[k] < n){

        perm[k]++;
        return 1;

    }
    else
        return 0;

}

int verif(int k) {
    int i;
    for (i = 1; i < k; i++)
        if (perm[i] == perm[k])
            return 0;

    return 1;

}

void backTrack(int k, FILE* out) {

    if (k == n + 1){
        for (int i = 1; i <= n; i++)
            fprintf(out, "%d ", perm[i]);

        fprintf(out, "\n");

    }
    else {

        perm[k] = 0;
        while (next(k)){
            if (verif(k))
                backTrack(k + 1, out);

        }
    }
}

int main() {

    FILE* in = fopen("permutari.in", "r");
    FILE* out = fopen("permutari.out", "w");

    fscanf(in, "%d", &n);

    n %= 8;
    backTrack(1, out);
    return 0;

}