Cod sursa(job #181704)

Utilizator albuaAlbu Alexandru albua Data 18 aprilie 2008 20:06:41
Problema Combinari Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.58 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");
}

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