Cod sursa(job #645230)

Utilizator tak3rStefan Mirea tak3r Data 8 decembrie 2011 20:58:25
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<cstdio>

void backtrack( int k, int p, int l, int s[], int a[], int len ){
  int i;
  if( l >= k ){
    for( i=0; i<k; ++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 );
      backtrack( k+1, i, l+1, s, a, len );
    }
  }
}

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

int main(){
  
  int n,i;
  
  freopen( "submultimi.in", "r", stdin );
  freopen( "submultimi.out", "w", stdout );
  
  scanf("%d", &n);
  int a[n];
  for( i=0; i<n; ++i ){
    a[i] = i+1;
  }
  
  subsets( a, n );
  
  return 0;
}