Cod sursa(job #737481)
#include <cstdio>
using namespace std;
const int MAXN = 20;
bool luat[MAXN];
int nr_luat = 0;
int n,k;
void citire()
{
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf ("%d%d",&n,&k);
}
void afisare()
{
for (int i = 1;i <= n;++i)
if (luat[i])
printf ("%d ",i);
printf ("\n");
}
void bkt(int i)
{
if (i >= n + 1)
{
if (nr_luat == k)
afisare();
return;
}
luat[i] = true;
++nr_luat;
bkt(i + 1);
luat[i] = false;
--nr_luat;
bkt(i + 1);
}
int main()
{
citire();
bkt(1);
return 0;
}