Cod sursa(job #1137575)

Utilizator alexstanseseStanese Alex alexstansese Data 9 martie 2014 13:21:24
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <stdio.h>
using namespace std;

int n,k,m, sol[20], altul,i;

int valid()
{
	if (k == 1)
		return 1;
	if (sol[k] > sol[k-1])
		return 1;
	return 0;
}

int main() {

	FILE *fin = fopen("combinari.in", "r");
	FILE *fout = fopen("combinari.out", "w");
	fscanf(fin,"%d %d", &n, &m);

	k = 1;
	while (k)
	{
		do
		{
			if (sol[k]<n)
			{
				sol[k]++;
				altul = 1;
			}
			else
				altul = 0;
		} while (altul && !valid());

		if (altul)
		{
			if (k==m)	//solutie
			{
				for (i=1;i<=m;i++)
					fprintf(fout,"%d ", sol[i]);
				fprintf(fout,"\n");
			}
			else
			{
				k++;
				sol[k]=0;
			}
		}
		else
		{
			k--;
		}
	}

	fclose(fout);
	fclose(fin);
	return 0;
}