question–>
https://practice.geeksforgeeks.org/problems/trapping-rain-water/0#
code–>
#include <iostream>
#include<climits>
using namespace std;
int fun(int* arr,int n){
int *left=new int[n+1];
for(int i=0;i<n;i++){
left[i]=0;
}
left[0]=arr[0];
int maxi=INT_MIN;
for(int i=1;i<n;i++){
maxi=max(maxi,arr[i]);
left[i]=maxi;
}
int *right=new int[n+1];
for(int i=0;i<n;i++){
right[i]=0;
}
maxi=INT_MIN;
right[n-1]=arr[n-1];
for(int i=n-2;i>=0;i--){
maxi=max(maxi,arr[i]);
right[i]=maxi;
}
int ans=0;
for(int i=0;i<n;i++){
if(min(left[i],right[i])-arr[i]>=0){
ans+=min(left[i],right[i])-arr[i];
}
}
return ans;
}
int main() {
//code
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int *arr=new int[n+1];
for(int i=0;i<n;i++){
cin>>arr[i];
}
cout<<fun(arr,n)<<endl;
}
return 0;
}
not passing all testcases