generate all subsets for 1 st half ( vect1 )
for ( int i = 0 ; i < ( 1 << vect1 . size ( ) ) ; i ++ ) { long long value = 1 ; for ( int j = 0 ; j < vect1 . size ( ) ; j ++ ) { if ( i & ( 1 << j ) ) value *= vect1 [ j ] ; }