Pagini recente » Cod sursa (job #2634663) | Cod sursa (job #2384467) | Cod sursa (job #2526048) | Cod sursa (job #171362) | Cod sursa (job #2786506)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int L, N, st[20], k;
void init(int k) {
st[k] = 0;
}
int succesor(int k) {
if (st[k] < N) {
st[k]++;
return 1;
}
return 0;
}
int valid(int k) {
for (int i = 1; i < k; ++i) {
if (st[i] >= st[k]) {
return 0;
}
}
return 1;
}
int solutie(int k) {
if (k == L) {
return 1;
}
return 0;
}
void tipar(int k) {
for (int i = 1; i <= k; ++i) {
fout << st[i] << " ";
}
fout << "\n";
}
void backtrack() {
k = 1;
init(k);
while (k > 0) {
while (succesor(k)) {
if (valid(k)) {
if (solutie(k)) {
tipar(k);
}
else {
++k;
init(k);
}
}
}
--k;
}
}
int main()
{
fin >> N >> L;
backtrack();
return 0;
}