Cod sursa(job #417496)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 14 martie 2010 14:34:02
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
FILE *f,*g;
int as,ev,k,st[25],n,m,ok,i;
void init() { st[k]=0; }
int succesor() { if(st[k]<n) { st[k]++; return 1; } else return 0; }
int valid() { if(st[k-1]>=st[k]) return 0; }
int solutie() { return k==m; }
void tipar() { for(i=1;i<=m;i++) fprintf(g,"%d ",st[i]); fprintf(g,"\n"); }
int main()
{ f=fopen("combinari.in","r"); g=fopen("combinari.out","w");
  fscanf(f,"%d%d",&n,&m);
  k=1; st[1]=0;
  while(k)
   { do
      { as=succesor();
        if(as) ev=valid();
	  }
	 while(!(as&&ev||!as));
	 if(as) if(solutie()) tipar();
            else { k++; init(); }
     else k--;
   };
  fclose(g);
  return 0;
}