Cod sursa(job #1240861)

Utilizator cella.florescuCella Florescu cella.florescu Data 12 octombrie 2014 10:48:37
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>

int v[19];

void comb(int n, int k, int prev, int i, int v[], FILE *fout){
  int x;
  if(i<=k)//daca mai avem elemente de luat pana ajungem la k
    for(x=prev+1; x<=n-(k-i); x++){//pornim de la elementul precedent+1
      v[i]=x;//salvam valoarea curenta in vector
      comb(n, k, x, i+1, v, fout);//si continuam ciclul
    }
  else{//daca nu mai avem elemente de luat
    for(x=1; x<=k; x++)//le printam pe cele stocate in vector si trecem la
      fprintf(fout, "%d ", v[x]);//urmatoarea combinare
    fprintf(fout, "\n");
  }
}

int main()
{
    FILE *fin, *fout;
    int n, k;
    fin=fopen("combinari.in", "r");
    fscanf(fin, "%d%d", &n, &k);
    fclose(fin);
    fout=fopen("combinari.out", "w");
    comb(n, k, 0, 1, v, fout);
    fclose(fout);
    return 0;
}