Pagini recente » Cod sursa (job #3333001) | Cod sursa (job #1129613) | Cod sursa (job #3353146) | Cod sursa (job #3304995) | Cod sursa (job #3355181)
#include <fstream>
#include <vector>
using namespace std;
int N, K;
vector<int> sol;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
// k reprezinta pozitia curenta din vectorul solutie (de la 0 la K-1)
void backtracking(int k) {
if (k == K) {
for (int i = 0; i < K; ++i) {
fout << sol[i] << " ";
}
fout << "\n";
return;
}
int start;
if (k == 0) {
start = 1;
} else {
start = sol[k - 1] + 1;
}
for (int i = start; i <= N; ++i) {
sol[k] = i;
backtracking(k + 1); // Trecem la urmatoarea pozitie
}
}
int main() {
fin >> N >> K;
sol.resize(K);
backtracking(0);
return 0;
}