Cod sursa(job #437588)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 9 aprilie 2010 22:34:39
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>

int st[100];
int n, i, j;
int p, k, AS;

void Init ()
{
	if (k > 1)
		st[k] = st[k-1];
	else
		st[k] = 0;
}

int Am_Succesor ()
{
	if (st[k] < n - p + k)
	{
		st[k] ++;
		return 1;
	}
	return 0;
}

int E_Valid ()
{
	return 1;
}

int Solutie ()
{
	if (p == k)
		return 1;
	return 0;
}

int main()
{
	FILE *f = fopen ("combinari.in","r");
	FILE *g = fopen ("combinari.out","w");
	fscanf (f,"%d %d", &n, &p);
	
	k = 1;
	Init ();
	while (k > 0)
	{
		do
		{ }
		while ( (AS = Am_Succesor () ) && !E_Valid () );
		if (AS)
			if (Solutie () )
			{
				for (i=1; i<=p; ++i)
					fprintf (g,"%d ", st[i]);
				fprintf (g,"\n");
			}
			else
			{
				k ++;
				Init ();
			}
		else
			k --;
	}
	
	fclose(g);
	fclose(f);
	return 0;
}