fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. long long bitlength(long long n){
  4. long long cnt=0;
  5. while(n>0){
  6. n>>=1;
  7. cnt++;
  8. }
  9. return cnt;
  10. }
  11. int main() {
  12. ios_base::sync_with_stdio(false);
  13. long long t,i,j,n,k,ans,arr,len,m,val;
  14. cin>>t;
  15. while(t--){
  16. cin>>n;
  17. set<long long, greater<long long> > s[65],ss,w;
  18. set<long long, greater<long long> >::iterator it;
  19. w.clear();
  20. for(i=0;i<65;i++)
  21. s[i].clear();
  22. for(i=0;i<n;i++)
  23. {
  24. cin>>arr;
  25. len=bitlength(arr);
  26. s[len].insert(arr);
  27. }
  28. for(i=64;i>=0;i--){
  29. if(!s[i].empty()){
  30. m=*(s[i].begin());
  31. s[i].erase(m);
  32. w.insert(m);
  33. for(it=s[i].begin();it!=s[i].end();it++){
  34. len=bitlength((*it)^m);
  35. s[len].insert((*it)^m);
  36. }
  37. s[i].clear();
  38. }
  39. }
  40. ans=0;
  41. for(it=w.begin();it!=w.end();it++){
  42. if(ans < (ans^(*it)))
  43. ans^=(*it);
  44. }
  45. cout<<ans<<" ";
  46. }
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0s 3468KB
stdin
1
6
1 2 3 4 5 6
stdout
7