Cod sursa(job #1847834)
Utilizator | Nechifor Alexandru alexneki | Data | 15 ianuarie 2017 09:47:07 |
---|---|---|---|
Problema | Combinari | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
int n, h;
int sol[201];
bool vis[201];
void explore(int k, int y) {
if (k == h) {
for (int i = 0; i < h; i++) {
out << sol[i] << " ";
}
out << endl;
} else { // n-k+h
for (int i = y + 1; i <= n - h + k + 1; i++) {
if (vis[i] == 0) {
sol[k] = i;
vis[i] = 1;
explore(k + 1, i);
vis[i] = 0;
}
}
}
}
int main() {
in >> n >> h;
explore(0, 0);
return 0;
}