Pagini recente » Cod sursa (job #326973) | Cod sursa (job #368405) | Cod sursa (job #1027555) | Cod sursa (job #1382683) | Cod sursa (job #2972661)
#include <cstdio>
#include <memory>
#include <vector>
using namespace std;
class Solver{
private:
int N, K; // N choose K
vector<int> v;
public:
Solver() {
freopen("combinari.in", "r", stdin);
freopen("combinari.out", "w", stdout);
}
~Solver() {
fclose(stdin);
fclose(stdout);
}
void readData() {
scanf("%d%d", &N, &K);
}
void printNchooseK() {
for (int i = 1; i <= K; ++i)
printf("%d ", v[i]);
printf("\n");
}
void backtrack(int k) {
for (v[k] = v[k-1] + 1; v[k] <= N; ++v[k])
if (k == K)
printNchooseK();
else
backtrack(k+1);
}
void solve() {
v.resize(N + 1);
backtrack(1);
}
};
int main()
{
unique_ptr<Solver> s = make_unique<Solver>();
s->readData();
s->solve();
return 0;
}