fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <string>
  5. #include <set>
  6. #include <cstring>
  7.  
  8. #define pb push_back
  9. using namespace std;
  10.  
  11. int bitsize(long long n)
  12. {
  13. int c=0;
  14. while(n) n>>=1, c++;
  15. return c;
  16. }
  17.  
  18. int main() {
  19. ios_base::sync_with_stdio(0);
  20. long long n,x,i,ans,t;
  21. cin>>n;
  22. set<long long,greater<long long>>s,w;
  23.  
  24. for(i=0;i<n;i++) cin>>x, s.insert(x);
  25. //gaussian elimination method
  26. while(!s.empty())
  27. {
  28. long long m=*s.begin();
  29. w.insert(m);
  30. s.erase(m);
  31. int sz=bitsize(m)-1;
  32. for(auto i:s)
  33. {
  34. long long x=i;
  35. if((i>>sz)&1)
  36. {
  37. s.erase(x);
  38. s.insert(x^m);
  39. }
  40. }
  41. }
  42.  
  43. ans=0;
  44. for(auto i:w) ans=max(ans,ans^i);
  45. cout<<ans;
  46.  
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0s 15240KB
stdin
3
1
2
3
stdout
3