Cod sursa(job #673506)

Utilizator ukiandreaAndreea Lucau ukiandrea Data 4 februarie 2012 16:03:17
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>

int a[20];

void print_solution(int size)
{
	for (int i = 0; i < size; i++)
		printf("%d ", a[i]);
	printf("\n");
}

bool is_valid(int index, int size)
{
	for (int i = 0; i < index; i++)
		if (a[i] >= a[index])
			return false;

	return true;
}

void combinari(int index, int size, int range)
{
	if (index == size) {
		print_solution(size);
		return ;
	}

	for (int i = 1; i <= range; i++) {
		a[index] = i;
		if (is_valid(index, size))
			combinari(index + 1, size, range);
	}
}

int main()
{
	int n, k;

	freopen("combinari.in", "r", stdin);
	freopen("combinari.out", "w", stdout);

	scanf("%d %d\n", &n, &k);

	combinari(0, k, n);

	return 0;
}