Pagini recente » Cod sursa (job #2153512) | Cod sursa (job #1476330) | Cod sursa (job #2151283) | Cod sursa (job #1656986) | Cod sursa (job #1676818)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int sol[20];
void printSol(int k) {
for (int i = 0; i < k; i++) {
g << sol[i] << " ";
}
g << endl;
}
void back(int n, int k, int p) {
// Daca am ajuns la o solutie, o afisam.
if (p == k) {
printSol(k);
return;
}
// Altfel, trebuie sa plasam pe pozitia k toate
// numerele mai mari decat cel de pe pozitia k-1
int prev;
if (p == 0) prev = 0;
else prev = sol[p-1];
for (int i = prev + 1; i <= n; i++) {
sol[p] = i;
back(n, k, p+1);
}
}
int main()
{
int n, k;
f >> n >> k;
back(n, k, 0);
f.close();
g.close();
return 0;
}