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. t=1;
  16. while(t--){
  17. cin>>n;
  18. set<long long, greater<long long> > s[65],ss,w;
  19. set<long long, greater<long long> >::iterator it;
  20. w.clear();
  21. for(i=0;i<65;i++)
  22. s[i].clear();
  23. for(i=0;i<n;i++)
  24. {
  25. cin>>arr;
  26. len=bitlength(arr);
  27. s[len].insert(arr);
  28. }
  29. for(i=64;i>=0;i--){
  30. if(!s[i].empty()){
  31. m=*(s[i].begin());
  32. s[i].erase(m);
  33. w.insert(m);
  34. for(it=s[i].begin();it!=s[i].end();it++){
  35. len=bitlength((*it)^m);
  36. s[len].insert((*it)^m);
  37. }
  38. s[i].clear();
  39. }
  40. }
  41. ans=0;
  42. for(it=w.begin();it!=w.end();it++){
  43. if(ans < (ans^(*it)))
  44. ans^=(*it);
  45. }
  46. cout<<ans<<endl;
  47. }
  48. return 0;
  49. }
Success #stdin #stdout 0s 3468KB
stdin
3
1
2
4
stdout
7