Cod sursa(job #2955826)

Utilizator DobraVictorDobra Victor Ioan DobraVictor Data 17 decembrie 2022 21:16:28
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

const uint32_t MAX_N = 8;

uint32_t n, v[MAX_N];
bool fol[MAX_N + 1];

FILE* fout;

void Backtrack(uint32_t pos) {
    if(pos == n) {
        for(uint32_t i = 0; i < n; ++i)
            fprintf(fout, "%u ", v[i]);
        fprintf(fout, "\n");
    } else {
        for(uint32_t i = 1; i <= n; ++i) {
            if(fol[i])
                continue;
            
            v[pos] = i;
            fol[i] = true;

            Backtrack(pos + 1);

            fol[i] = false;
        }
    }
}

int main() {
    FILE* fin = fopen("permutari.in", "r");
    fout = fopen("permutari.out", "w");

    fscanf(fin, "%u", &n);

    Backtrack(0);

    fclose(fin);
    fclose(fout);

    return 0;
}