Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <numeric>
- #include <vector>
- #include <functional>
- #include<algorithm>
- using std::vector;
- void max_subset(const vector<int>& A,
- vector<int>& curr_set,
- int index,
- unsigned& result)
- {
- if(result==A.size()) return;
- if(std::accumulate(curr_set.begin(), curr_set.end(),-1,std::bit_and<int>()) > 0 && result < curr_set.size())
- result=curr_set.size();
- for (int i = index; i < A.size(); i++) {
- curr_set.push_back(A[i]);
- max_subset(A, curr_set, i + 1, result);
- curr_set.pop_back();
- }
- }
- int solution(const vector<int>& A){
- vector<int> sub_set;
- int index=0;
- unsigned res=0;
- max_subset(A, sub_set, index , res);
- return res;
- }
- int main()
- {
- vector<int> array = {16,16};
- std::cout<<solution(array);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement