Cod sursa(job #1681559)

Utilizator medicinedoctoralexandru medicinedoctor Data 9 aprilie 2016 16:19:13
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;

short int n,k,c[18],y;

void lire()
{
	ifstream f("combinari.in");
	f >> n >> k ;
	f.close();
}

void pl(short int x)
{
	c[x]++;
	if (c[x]>(y-k+x)) { pl(x-1); c[x]=c[x-1]+1; }
}

void ecrire()
{
	ofstream f("combinari.out");
	if (n==k) 
	{
		for (int i=1; i<=n; i++)
			f << i << ' ';
	} else { short int x=y-k;
	while (c[1]!=x)
	{
		pl(k);
		while (c[k]==y) pl(k);
		for (short int i=1; i<=k; i++)
			f << c[i] << ' ';
		f << endl; 
	} }
	f.close();
}

int main()
{
	lire();
	y=n+1;
	for (int i=1; i<=k-1; i++)
		c[i]=i;
	c[k]=k-1;
	ecrire();
	return 0;
}