Cod sursa(job #181711)

Utilizator albuaAlbu Alexandru albua Data 18 aprilie 2008 20:14:30
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>

FILE *f,*g;
int n,m,i,a[100],k,j;

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

void genereaza(void)
{
  int i,limita,j;
  limita=n;
  i=m;
  while(a[i]==limita)
    {
      i--;
      limita--;
    }
  a[i]++;
  for(j=i+1;j<=m;j++)
    a[j]=a[j-1]+1;
}

int main()
{
  f=fopen("combinari.in","r");
  g=fopen("combinari.out","w");
  fscanf(f,"%d %d\n",&n,&m);
  for(i=1;i<=m;i++) a[i]=i; //cea mai mica submiltime de m elemente posibila
  while(a[0]==0)
    {
	  afisare();  //afisez submultimea
	  genereaza();
	}
  fclose(f);  fclose(g);
  return 0;
}