Cod sursa(job #272112)

Utilizator Addy.Adrian Draghici Addy. Data 6 martie 2009 13:38:09
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
// combinari de n luate cate k, lexicografic
#include <stdio.h>

int s[19];
int n,k,i,j;

int main() {

  FILE *f = fopen("combinari.in", "r");
  FILE *g = fopen("combinari.out", "w");

  fscanf(f,"%d %d",&n,&k);

  //construiesc prima combinare in ordine lexicografica
  for (i=1; i<=k; i++)
    s[i] = i;

  for (;;) {
    //afisez combinarea
    for (i=1; i<=k; i++)
      fprintf(g,"%d ",s[i]);
    fprintf(g,"\n");

    //construiesc urmatoarea combinare
    i = k;
    while (i!=0 && s[i]==n-k+i)
      i--;
    if (i==0)
      break;

    s[i]++;
    for (j=i+1; j<=k; j++)
      s[j] = s[j-1]+1;
  }

  fclose(f);
  fclose(g);

  return 0;
}