Pagini recente » Cod sursa (job #3309883) | Cod sursa (job #3304774) | Cod sursa (job #3302671) | Cod sursa (job #3356816) | 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;
}