Cod sursa(job #1387580)

Utilizator juniorOvidiu Rosca junior Data 14 martie 2015 14:41:14
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;

int n, a[9];
ifstream fin("permutari.in");
ofstream fout("permutari.out");

void tip () {
  int i;
  for (i = 1; i <= n; i++)
    fout << a[i] << ' ';
  fout << '\n';
}

bool cont (int k) {
  int i;
  for (i = 1; i <= k - 1; i++)
    if (a[i] == a[k])
      return false;
  return true;
}

void bt () {
  int i, k;

  k = 1;
  for (i = 1; i <= n; i++)
    a[i] = 0;
  while (k > 0)
    if (k == n + 1) {
      tip();
      k--;
    }
    else
      if (a[k] < n) {
        a[k]++;
        if (cont(k))
          k++;
      }
      else {
        a[k] = 0; k--;
      }
}

int main () {
  fin >> n;
  bt();
}