Cod sursa(job #419791)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 17 martie 2010 23:23:51
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
FILE *f,*g;
int k,n,st[25],i,as,ev;
void init() { st[k]=0; }
int succesor() { if(st[k]<n) { st[k]++; return 1; } else return 0; }
int valid() { if(st[k]<=st[k-1]) return 0; else return 1; }
void tipar() { for(i=1;i<=k;i++) fprintf(g,"%d ",st[i]); fprintf(g,"\n"); }
int solutie() { if(k<=n) tipar(); return 0; }
int main()
{ f=fopen("submultimi.in","r"); g=fopen("submultimi.out","w");
  fscanf(f,"%d",&n);
  k=1; init();
  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;
}