Backward traversal
while ( sBackward . Count != 0 && arr [ n - i - 1 ] < arr [ sBackward . Peek ( ) ] ) { ans = Math . Max ( ans , arr [ n - i - 1 ] ^ arr [ sBackward . Peek ( ) ] ) ; sBackward . Pop ( ) ; } sBackward . Push ( n - i - 1 ) ; } return ans ; }