Cod sursa(job #3297409)

Utilizator Arhiva_Educationala_2Arhiva Educationala doi Arhiva_Educationala_2 Data 22 mai 2025 16:24:09
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>

#include <vector>
#include <algorithm>

int main() {
  FILE *fin = fopen( "combinari.in", "r" );
  FILE *fout = fopen( "combinari.out", "w" );

  int n, k;
  fscanf( fin, "%d%d", &n, &k );
  std::vector<std::vector<int>> mata;
  for( int mask = (1 << n); mask--; ){
    if( __builtin_popcount( mask ) != k ) continue;
    mata.emplace_back();
    for( int i = 0; i < n; i++ )
      if( mask & (1 << i) )
        mata.back().push_back( 1 + i );
  }

  std::sort( mata.begin(), mata.end() );
  for( auto &row : mata ){
    for( int x : row ) fprintf( fout, "%d ", x ); fputc( '\n', fout );
  }

  fclose( fin );
  fclose( fout );
  return 0;
}