Pagini recente » Cod sursa (job #3254563) | Cod sursa (job #2517529) | Cod sursa (job #77252) | Cod sursa (job #1619442) | Cod sursa (job #877968)
Cod sursa(job #877968)
#include <fstream>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
int N, M, k, st[19];
bool as, ev;
void init()
{
if (k == 1) st[k] = 0;
else st[k] = st[k-1];
}
bool succesor()
{
if (st[k] < N-M+k)
{
st[k] = st[k] + 1;
return true;
}
return false;
}
bool valid() { return true; }
bool solutie() { return k == M; }
void tipar()
{
for (int i = 1; i <= k; i++)
out << st[i] << ' ';
out << '\n';
}
void bt()
{
k = 1; init();
while (k > 0)
{
do
{
as = succesor();
if (as) ev = valid();
} while (as && !ev);
if (as)
{
if (solutie()) tipar();
else { k++; init(); }
}
else k--;
}
}
int main()
{
in >> N >> M;
bt();
return 0;
}