Cod sursa(job #1503222)

Utilizator voillpalMihai Voinea voillpal Data 15 octombrie 2015 18:52:57
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <climits>
using namespace std;

bool isValid(int st[], int k) {
	for (int i = 1; i < k; i++) {
		if (st[i] == st[k]) {
			return false;
		}
	}
	return true;
}

void print(int st[], int n) {
	for (int i = 1; i <= n; i++) {
		cout << st[i] << " ";
	}
	cout << "\n";
}

int main() {
	// freopen("permutari.in", "r", stdin);
	// freopen("permutari.out", "w", stdout);
	int n, k, st[30], level;
	cin >> n >> k;
	level = 1;
	st[1] = 0;

	while (level > 0) {
		st[level]++;
		if (st[level] == n + 1) {
			level--;
		} else {
			if (isValid(st, level)) {
				level++;
				st[level] = 0;
			}
			if (level == k + 1) {
				print(st, k);
				level--;
			}
		}
	}

	return 0;
}