fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. vector<vector<int>> table;
  5. int myXOR(int a, int b)
  6. {
  7.  
  8. return ((a|b)&(~a|~b));
  9. }
  10. void subset(vector<int>num, int i, int n)
  11. {
  12. if(i==n)
  13. table.push_back(num);
  14.  
  15. for(int k=i;k<num.size();k++)
  16. {
  17. subset(num,i+1,n);
  18. num.erase(num.begin()+i);
  19. subset(num,i,n-1);
  20.  
  21. }
  22. }
  23.  
  24. int main() {
  25. // your code goes here
  26. vector<int> num={3,4,5,6,7,8,11,2,3,4,6};
  27.  
  28. subset(num, 0,num.size());
  29. //table.sort(table.begin(),table.end());
  30. int sum=0;
  31. for(int i=0,j;i<table.size()-1;i++)
  32. {
  33. if(table[i].size()==0)
  34. continue;
  35. if(table[i].size()==1)
  36. {
  37. sum+=table[i][0];
  38. continue;
  39. }
  40. for(j=1;j<table[i].size();j++)
  41. {
  42. table[i][j]=myXOR(table[i][j],table[i][j-1]);
  43. }
  44. sum+=table[i][j-1];
  45. }
  46. cout<<sum;
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0.01s 5444KB
stdin
Standard input is empty
stdout
15360