In this

**HackerEarth Jumpy Humpy problem solution,**Humpy likes to jump from one building to another. But he only jumps to the next higher building and stops when no higher building is available. Stamina required for a journey is the xor of all the heights on which humpy jumps until he stops.If heights are [1 2 4], and he starts from 1, goes to 2 stamina required is 1 xor 2 = 3, then from 2 to 3. Stamina for the entire journey is 1 xor 2 xor 4 = 7. Find the maximum stamina required if can start his journey from any building.

## HackerEarth Jumpy Humpy problem solution.

`#include <bits/stdc++.h>`

#define ll long long

using namespace std;

int main()

{

ll n;

cin >> n;

vector<ll>arr(n, 0);

for(int i = 0; i < n; i++)cin >> arr[i];

vector<ll>nxt(n, 0);

stack<ll>s;

s.push(0);

for(int i = 1; i < n; i++){

while(!s.empty() && arr[i] > arr[s.top()]){

nxt[s.top()] = i;

s.pop();

}

s.push(i);

}

while(!s.empty()){

nxt[s.top()] = -1;

s.pop();

}

vector<ll>dp(n, 0);

ll ans = 0;

for(int i = n - 1; i >= 0; i--){

if(nxt[i] == -1){

dp[i] = arr[i];

ans = max(ans, dp[i]);

continue;

}

dp[i] = arr[i] ^ dp[nxt[i]];

ans = max(ans, dp[i]);

}

cout << ans << endl;

return 0;

}

## 0 Comments