Cod sursa(job #159988)

Utilizator marinaMarina Horlescu marina Data 14 martie 2008 16:47:31
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
//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;
}