Advertisement
HasanRasulov

subset.cpp

Dec 27th, 2020
680
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <numeric>
  3. #include <vector>
  4. #include <functional>
  5. #include<algorithm>
  6. using std::vector;
  7.  
  8. void max_subset(const vector<int>& A,
  9.                  vector<int>& curr_set,
  10.                  int index,
  11.                  unsigned& result)
  12. {      
  13.         if(result==A.size()) return;
  14.  
  15.     if(std::accumulate(curr_set.begin(), curr_set.end(),-1,std::bit_and<int>()) > 0 && result < curr_set.size())
  16.         result=curr_set.size();
  17.  
  18.  
  19.     for (int i = index; i < A.size(); i++) {
  20.  
  21.         curr_set.push_back(A[i]);
  22.  
  23.         max_subset(A, curr_set, i + 1, result);
  24.  
  25.         curr_set.pop_back();
  26.     }
  27.  
  28. }
  29.  
  30. int solution(const vector<int>& A){
  31.      
  32.     vector<int> sub_set;
  33.     int index=0;
  34.     unsigned res=0;
  35.  
  36.     max_subset(A, sub_set, index , res);
  37.         return res;  
  38. }
  39.  
  40. int main()
  41. {
  42.     vector<int> array = {16,16};
  43.  
  44.  
  45.     std::cout<<solution(array);
  46.     return 0;
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement