Pagini recente » Cod sursa (job #1435637) | Cod sursa (job #193520) | Cod sursa (job #1872470) | Cod sursa (job #634723) | Cod sursa (job #374608)
Cod sursa(job #374608)
//80 p
#include <fstream>
using namespace std;
int n, a[19], k;
ifstream fi("combinari.in");
ofstream fo("combinari.out");
// La fiecare apel se stabileste o valoare in sir.
void comb (int l) { // se va pune o valoare pe locul l
int i; // variabila locala, memorata separat pentru fiecare apel
if (l <= k) { // conditie care "protejeaza"
for (i = a[l-1] + 1; i <= n - k + l; i++) { // i este valoarea care se pune pe locul l
a[l] = i;
comb (l + 1); // la pasul urmator vom pune valoare pe locul l+1
}
}
else {
for (i = 1; i <= k; i++)
fo << a[i] << ' ';
fo << endl;
}
}
int main () {
fi >> n >> k;
comb (1); // mai intai punem o valoare pe locul 1 din n-uplu
return 0;
}
/*
l max
--------
k n
k-1 n-1 max-l = n-k => max = n-k+l
k-2 n-2
*/