Cod sursa(job #201419)

Utilizator piroslPiros Lucian pirosl Data 31 iulie 2008 15:47:19
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;


class combinari 
{
private:
	int n, k;
	int comb[19];
	ifstream in;
	ofstream out;
public:
	combinari();
	~combinari();
	void proceed();
protected:
	void proceed(int p);
	void print();
};

combinari::combinari() 
{
	in.open("combinari.in");
	out.open("combinari.out");
	in >> n >> k;
}

combinari::~combinari()
{
	in.close();
	out.close();
}

void combinari::print()
{
	for(int i=0;i<k-1;++i)
	{
		out << comb[i] << " ";
	}
	out << comb[k-1] << endl;
}

void combinari::proceed()
{
	proceed(0);
}

void combinari::proceed(int p) 
{
	if(p >= k) 
	{
		print();
		return;
	}
	int s = (p==0)?1:(comb[p-1]+1);
	for(int i=s;i<=n;++i)
	{
		comb[p] = i;
		proceed(p+1);
	}
}

int main(void) 
{
	combinari c;
	c.proceed();
	return 0;
}