Cod sursa(job #1008162)

Utilizator Darius15Darius Pop Darius15 Data 10 octombrie 2013 13:43:20
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb

#include <fstream>
#include <cmath>

using namespace std;

int n, k, a[10];
ifstream f("permutari.in");
ofstream g("permutari.out");
void init (int l) {
  a[l] = 0;
}

bool succesor (int l) {
  a[l]++;
  return a[l] <= n;
}

bool valid (int l) {
  bool ok = true;
  int i;

  for (i = 1; i <= l-1; i++)
    if (a[i] == a[l])
      ok = false;
  return ok;
}

bool sol (int l) {
  return l == n;
}

void tip () {
  int i;

  for (i = 1; i <= n; i++)
    g << a[i] << ' ';
  g << '\n';
}

void bt (int l) {
  init (l);
  while (succesor(l))
    if (valid(l))
      if (sol(l))
        tip();
      else
        bt(l+1);
}

int main () {
   f>> n;
  bt(1);
}