diff --git a/S2OJ/159/159.cpp b/S2OJ/159/159.cpp new file mode 100644 index 00000000..66ca04a3 --- /dev/null +++ b/S2OJ/159/159.cpp @@ -0,0 +1,34 @@ +#include + +using namespace std; + +int n; +long long t, ans, p[60]; + +void insert(long long x) { + for (int i = 50; i >= 0; i--) { + if (x & (1ll << i)) { + if (!p[i]) { + p[i] = x; + break; + } else { + x ^= p[i]; + } + } + } +} + +int main() { + cin >> n; + for (int i = 1; i <= n; i++) { + cin >> t; + insert(t); + } + for (int i = 50; i >= 0; i--) { + if ((ans ^ p[i]) > ans) { + ans ^= p[i]; + } + } + cout << ans << endl; + return 0; +}