Cod sursa(job #953488)

Utilizator sorin2kSorin Nutu sorin2k Data 26 mai 2013 13:20:11
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<fstream>
using namespace std;

int a[20], n, k, aux;
ifstream fin("combinari.in");
ofstream fout("combinari.out");

int valid(int p)
{
	int i, j;
	for(i = 1; i <= p; i++)
		for(j = i + 1; j <= p; j++)
			if(a[i] >= a[j])
				return 0;
	return 1;
}

void afis()
{
	int i;
	for(i = 1; i <= k; i++)
		fout << a[i] << " ";
	fout << endl;
}

void back()
{
	int p = 1; // p = pozitia din cele k elemente pe care vom incerca sa punem urmatorul numar
	while(p > 0)
	{
		if(p == k + 1)
		{
			afis();
			p--;
		}
		else
		{
			if(a[p] == n)
			{
				a[p] = 0;
				p--;
			}
			else
			{
				a[p]++;
				if(valid(p))
				{
					aux = a[p];
					a[++p] = aux; // urmatorul element va incepe sigur de la numarul curent + 1 (combinarile vor fi in ord. cresc)
				}
			}
		}
	}
}

int main()
{
	fin >> n >> k;
	back();
	return 0;
}