Cod sursa(job #1146012)

Utilizator SilverGSilver Gains SilverG Data 18 martie 2014 17:12:31
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
/*
Keep It Simple!
*/

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include<stdio.h>
#define MaxN 19

int N,st[MaxN],M;

void PrintData(int k)
{
	for (int i = 1; i <= k; i++)
		printf("%d ", st[i]);
	printf("\n");
}

bool valid(int k)
{
	for (int i = 1; i < k;i++)
		if (st[i] == st[k])
			return 0;
		return 1;
}

void back(int k)
{
	int i;
	for (i = st[k-1]+1; i <= N; i++)
	{
		st[k] = i;
		if (valid(k))
		{
			if (k == M)
				PrintData(k);
			if (k < N)
				back(k + 1);
		}
	}
}

int main()
{
	freopen("submultimi.in", "r", stdin);
	freopen("submultimi.out", "w", stdout);

	scanf("%d%d", &N,&M);
	back(1);

	return 0;
}