d1i2p3a4k5

worksapp maxxor

Aug 28th, 2016
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include<iostream>
  2. #include <algorithm>
  3. long long prefix[100000];
  4. long long suffix[100000];
  5. long long array[100000];
  6. using namespace std;
  7. long long findmax(long long zu[100000], int m, int n){
  8.     long long res = 0;
  9.     for (int i = m; i <= n; i++)
  10.         res = max(res, zu[i]);
  11.     return res;
  12. }
  13. int main()
  14. {
  15.     int N;
  16.     cin >> N;
  17.     if(N<0||N>100000)
  18.     {
  19.         cout<<"Invalid Input"<<endl;
  20.         exit(0);
  21.     }
  22.    
  23.     for (int i=1;i<=N;i++)
  24.     {
  25.         cin >>array[i];
  26.         if(array[i]>1e12)
  27.         {
  28.             cout<<"Invalid Input"<<endl;
  29.             exit(0);
  30.         }
  31.     }
  32.     prefix[0] = prefix[N + 1] = suffix[0] = suffix[N + 1] = 0;
  33.     for (int i=1;i<N;i++)
  34.         prefix[i] = prefix[i-1]^array[i];
  35.     for (int i=N;i>=1;i--)
  36.         suffix[i] = suffix[i+1]^array[i];
  37.     long long result = 0;
  38.     for (int i=1;i<=N;i++)
  39.         result = max(result, max(findmax(prefix, 0, i), findmax(suffix, i + 1, N)));
  40.     cout<<result<<endl;
  41.     return 0;
  42. }
Add Comment
Please, Sign In to add comment