Cod sursa(job #2559643)

Utilizator matthriscuMatt . matthriscu Data 27 februarie 2020 14:38:06
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;

ifstream cin("combinari.in");
ofstream cout("combinari.out");

int n, m, sol[20];

void succesor(int k, bool &as) {
  as = 0;
  if(sol[k] < n) {
    sol[k]++;
    as = 1;
  }
}

void valid(int k, bool &ev) {
  ev = 1;
  for(int i = 1; i < k; ++i)
    if(sol[i] >= sol[k])
      ev = 0;
}

void tipar() {
  for(int i = 1; i <= m; ++i)
    cout << sol[i] << ' ';
  cout << '\n';
}

void back() {
  int k = 1;
  bool as, ev;
  while(k) {
    do {
      succesor(k, as);
      if(as)
        valid(k, ev);
    } while(as && !ev);
    if(as)
      if(k == m)
        tipar();
      else {
        ++k;
        sol[k] = 0;
      }
    else
      --k;
  }
}

int main() {
  cin >> n >> m;
  back();
}