Pagini recente » Cod sursa (job #1436750) | Cod sursa (job #635170) | Cod sursa (job #871968) | Cod sursa (job #670983) | Cod sursa (job #159988)
Cod sursa(job #159988)
//combinari
#include <stdio.h>
#define INPUT "combinari.in"
#define OUTPUT "combinari.out"
#define MAXN 18
int N, K;
int x[MAXN], viz[MAXN];
int k = 1;
void afis()
{
int i;
for(i = 1; i < K; ++i) printf("%d ",x[i]);
printf("%d\n", x[K]);
}
void back()
{
while(k)
if(k == K+1)
{
afis();
viz[x[--k]] = 0;
}
else if(x[k] < N - (K-k))
{
++x[k];
if(!viz[x[k]]) viz[x[k++]] = 1, x[k] = x[k-1];
}
else viz[x[--k]] = 0;
}
int main()
{
freopen(INPUT, "r", stdin);
freopen(OUTPUT, "w", stdout);
scanf("%d %d", &N, &K);
k = 1;
back();
return 0;
}