Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include <algorithm>
- long long prefix[100000];
- long long suffix[100000];
- long long array[100000];
- using namespace std;
- long long findmax(long long zu[100000], int m, int n){
- long long res = 0;
- for (int i = m; i <= n; i++)
- res = max(res, zu[i]);
- return res;
- }
- int main()
- {
- int N;
- cin >> N;
- if(N<0||N>100000)
- {
- cout<<"Invalid Input"<<endl;
- exit(0);
- }
- for (int i=1;i<=N;i++)
- {
- cin >>array[i];
- if(array[i]>1e12)
- {
- cout<<"Invalid Input"<<endl;
- exit(0);
- }
- }
- prefix[0] = prefix[N + 1] = suffix[0] = suffix[N + 1] = 0;
- for (int i=1;i<N;i++)
- prefix[i] = prefix[i-1]^array[i];
- for (int i=N;i>=1;i--)
- suffix[i] = suffix[i+1]^array[i];
- long long result = 0;
- for (int i=1;i<=N;i++)
- result = max(result, max(findmax(prefix, 0, i), findmax(suffix, i + 1, N)));
- cout<<result<<endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment