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