Cod sursa(job #1850359)

Utilizator msciSergiu Marin msci Data 18 ianuarie 2017 16:32:20
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

const int N = 123456;

vector<int> ans[N];

int main() {
  freopen("combinari.in", "r", stdin);
  freopen("combinari.out", "w", stdout);
  int n, k;
  scanf("%d %d", &n, &k);
  vector<int> v(n, 0);
  for (int i = 0; i < n; i++) {
    v[i] = (n - i - 1 < k);
  }
  int ix = 0;
  do {
    for (int i = 0; i < n; i++) {
      if (v[i]) ans[ix].push_back(i + 1);
    }
    ix++;
  } while (next_permutation(v.begin(), v.end()));
  sort(ans, ans + ix);
  for (int i = 0; i < ix; i++) {
    for (int j = 0; j < (int) ans[i].size(); j++) {
      if (j) putchar(' ');
      printf("%d", ans[i][j]);
    }
    puts("");
  }
  return 0;
}