Pagini recente » Cod sursa (job #2550562) | Cod sursa (job #2128596) | Cod sursa (job #1155366) | Cod sursa (job #488075) | Cod sursa (job #2174381)
#include <iostream>
#include <fstream>
std::ifstream f("combinari.in");
//std::ofstream g("combinari2.out");
std::ofstream g("combinari.out");
int st[20];
int K, N;
bool valid(int k)
{
for(int i = 1; i < k; ++i)
if(st[i] >= st[k])
return false;
return true;
}
bool sol(int k)
{
if(k == K)
return true;
return false;
}
void Print()
{
for(int i = 1; i <= K; ++i)
g << st[i] << ' ';
g << '\n';
}
void BackTracking()
{
int k = 1;
st[k] = 0;
while(k > 0) {
st[k]++;
if(st[k] <= N) {
if(valid(k)) {
if(sol(k)) {
Print();
}
else {
st[++k] = 0;
}
}
}
else {
--k;
}
}
}
int main()
{
f >> N >> K;
BackTracking();
return 0;
}