class Solution {
public:
int trap(vector<int>& height) {
int n=height.size();
int Pmax[n], Bmax[n];
int p=0,b=0;
for(int i=0;i<n;i++)
{
Pmax[i]=p;
if(height[i]>=p) p=height[i];
}
for(int i=n-1;i>=0;i--)
{
Bmax[i]=b;
if(height[i]>=b) b=height[i];
}
int ans=0;
for(int i=0;i<n;i++)
{
int Lmin=min(Pmax[i],Bmax[i]);
if((Lmin==0)||(height[i]>=Lmin))
{
continue;
}
else
{
ans+=(Lmin-height[i]);
}
}
return ans;
}
};