In this HackerEarth Max Power problem solution Given an array A having N distinct integers.

The power of the array is defined as:
max(A[i] - A[j]) where 2 <= i <= N
for each i, j is the largest index less than i such that A[j] < A[i].
Let's say the array is {1,2,5}, then the power of the array is max((2-1),(5-2)), which simplifies to max(1,3) which is equal to 3.

Operation Allowed:
If you are allowed to choose any two indices x and y and swap A[x] and A[y], find out the maximum power that can be achieved.


HackerEarth Max Power problem solution


HackerEarth Max Power problem solution.

#include<bits/stdc++.h>

using namespace std;

int main(){
int t;cin>>t;
int a[100100];
int b[100100];
while(t--){
int n;cin>>n;
for(int i=1; i<=n; i++){
cin>>a[i];b[i] = a[i];
}
sort(b+1, b+1+n);
if(n == 2){
cout<<abs(a[2]-a[1])<<endl;
continue;
}
if(a[1] == b[n] and a[n] == b[1] and n != 2)cout<<max(b[n-1]-b[1], b[n]-b[2])<<endl;
else cout<<b[n]-b[1]<<endl;
}
return 0;
}