Cod sursa(job #2729276)

Utilizator avtobusAvtobus avtobus Data 24 martie 2021 15:32:29
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <bits/stdc++.h>

#define rep(i, n) for(int i = 0; i < (int)(n); i++)

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

ifstream fin {"combinari.in"};
ofstream fout {"combinari.out"};

const int Nmax = 20;
char used[Nmax];
int N, K;

void write() {
  for(int i = 0; i < N; i++) {
    if (used[i]) {
      fout << i + 1 << ' ';
    }
  }
  fout << '\n';
}

void go(int pos, int left) {
  if (left == 0) {
    write();
    return;
  }
  if (pos + left > N) { return; }
  used[pos] = 1;
  go(pos+1, left-1);
  used[pos] = 0;
  go(pos+1, left);
}

int main(void) {
  // freopen("combinari.in", "r", stdin);
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(NULL);
  fin >> N >> K;
  memset(used, 0, sizeof(used));
  go(0, K);

  return 0;
}