Cod sursa(job #3244666)

Utilizator ultra980Alex Stan ultra980 Data 25 septembrie 2024 21:41:35
Problema Generare de permutari Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>

enum { NMAX = 8 };
char folosit[NMAX], nr[NMAX];
FILE *fout;

void afisare(int n) { // afiseaza vectorul nr
  int i;
  for (i = 0; i < n; i++) {
    fprintf(fout, "%d ", nr[i]);
  }
  fputc('\n', fout);
}

// genereaza permutarile de la pozitia poz pana la n - 1, apoi le afiseaza
void genperm(int poz, int n) {
  if (poz == n) {
    afisare(n);
    return;
  }
  int i;

  for (i = 1; i <= n; i++) {
    if (!folosit[i - 1]) {
      folosit[i - 1] = 1;
      nr[poz] = i;
      genperm(poz + 1, n);
      folosit[i - 1] = 0;
    }
  }
}

int main() {
  FILE *fin;
  int n;

  fin = fopen("permutari.in", "r");
  fscanf(fin, "%d", &n);
  fclose(fin);

  fout = fopen("permutari.out", "w");
  genperm(0, n);
  fclose(fout);

  return 0;
}