Cod sursa(job #644667)

Utilizator tak3rStefan Mirea tak3r Data 7 decembrie 2011 11:39:59
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
#include<iostream>

using namespace std;

void backtrack( int k, int p, int l, int s[], int a[], int len ){
  int i;
  if( l >= k ){
    for( i=0; i<k-1; ++i ){
      printf("%d ", s[i]);
    }
    printf("%d", s[i]);
    printf("\n");
  } else {
    for( i=p+1; i<len; ++i ){
      s[l] = a[i];
      backtrack( k, i, l+1, s, a, len );
    }
  }
}

void combinations( int k, int a[], int len ){
  int s[len];
  backtrack( k, -1, 0, s, a, len );
}

int main(){

  int i,a[20];
  int k = 2;
  int n = 4;

  freopen( "combinari.in", "r", stdin );
  freopen( "combinari.out", "w", stdout );

  scanf("%d %d", &n, &k);
  
  for( i=1; i<=n; ++i ){
    a[i-1] = i;
  }
  
  combinations( k, a, n );
  
  return 1;
}