Cod sursa(job #1794947)

Utilizator TincaMateiTinca Matei TincaMatei Data 1 noiembrie 2016 20:55:55
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>

const int MAX_N = 8;
int cursor[MAX_N], f[MAX_N];

int main() {
  int i, n, j;
  FILE *fin = fopen("permutari.in", "r");
  FILE *fout = fopen("permutari.out", "w");
  fscanf(fin, "%d", &n);
  for(i = 0; i < n; i++)
    cursor[i] = -1;
  i = 0;
  while(cursor[0] < n) {
    if(i == n) {
      for(j = 0; j < n; ++j)
        fprintf(fout, "%d ", cursor[j] + 1);
      fprintf(fout, "\n");
      i--;
    }

    if(cursor[i] != -1)
      f[cursor[i]] = 0;
    cursor[i]++;
    while(cursor[i] < n && f[cursor[i]] == 1)
      cursor[i]++;

    if(cursor[i] < n) {
      f[cursor[i]] = 1;
      i++;
      cursor[i] = -1;
    } else
      i--;
  }
  fclose(fin);
  fclose(fout);
  return 0;
}