Cod sursa(job #953513)

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

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

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)
				p--; // backtrack
			else
			{
				a[p]++;
				p++;
				a[p] = a[p-1];
				// nu mai avem nevoie de functie de validare
				// urmatorul element va incepe sigur de la numarul curent + 1 (combinarile vor fi in ord. cresc)
				// stim ca nu exista decat elemente in ordine crescatoare
			}
		}
	}
}

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