Cod sursa(job #1019620)

Utilizator cristy202020Totolin Cristian cristy202020 Data 31 octombrie 2013 17:38:53
Problema Combinari Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#include <math.h>
int st[100],l[100],k,i,j,n,as,ev,nr=0,m;
 FILE *g=fopen("combinari.out","w");

void init(void)
{
 st[k]=0;
}

void succesor(void)
{
 as=1;
 if (st[k]<n) st[k]++;
 else as=0;
}

void valid(void)
{
ev=1;
for (i=1;i<=k-1;i++)
  if (st[i]>=st[k])
		 ev=0;
}

void tipar(void)
{int i;
 for(i=1;i<=m;i++)
   fprintf(g,"%d ",st[i]);
fprintf(g,"\n");
}

int solutie(void)
{
 return(k==m);
}

int main()
{
// clrscr();
 FILE *f=fopen("combinari.in","r");
 fscanf(f,"%d",&n);
 fscanf(f,"%d",&m);
 k=1;
 init();
 while(k>0) {
  do
   {
   succesor();
   if (as)
       valid();
   }
  while ((as) && (!as || !ev));
   if (as)
      if (solutie()) tipar();
	    else {
	       k++;
	       init();}
   else k--;}
return 0;
}