Pagini recente » Cod sursa (job #3302809) | Cod sursa (job #2194569) | Cod sursa (job #2683136) | Cod sursa (job #1216593) | Cod sursa (job #3303570)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int N, K;
fin >> N >> K;
// Vector de 0 și 1: K elemente 1 (alese), restul 0
vector<int> select(N, 0);
for (int i = 0; i < K; i++) {
select[i] = 1;
}
sort(select.begin(), select.end()); // asigurăm ordinea lex
do {
// Pentru fiecare permutare, afișăm pozițiile cu 1 (elementele alese)
bool first = true;
for (int i = 0; i < N; i++) {
if (select[i] == 1) {
if (!first) fout << ' ';
fout << (i + 1);
first = false;
}
}
fout << '\n';
} while (next_permutation(select.begin(), select.end()));
fin.close();
fout.close();
return 0;
}