Cod sursa(job #2499384)

Utilizator radustn92Radu Stancu radustn92 Data 26 noiembrie 2019 00:05:36
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#include <vector>
using namespace std;

void back(int currentPos, int N, int K, vector<bool>& taken, int lastElem) {
	if (currentPos == K) {
		for (int i = 1; i <= N; i++) {
			if (taken[i]) {
				printf("%d ", i);
			}
		}
		printf("\n");
		return;
	}

	for (int nextElem = lastElem + 1; nextElem <= N; nextElem++) {
		if (!taken[nextElem]) {
			taken[nextElem] = true;
			back(currentPos + 1, N, K, taken, nextElem);
			taken[nextElem] = false;
		}
	}
}

int main() {
	freopen("combinari.in", "r", stdin);
	freopen("combinari.out", "w", stdout);

	int N, K;
	scanf("%d%d", &N, &K);
	vector<bool> taken(N + 1, false);
	back(0, N, K, taken, 0);
	return 0;
}