inttrap(vector<int>& height){ int n = height.size(); if(n < 3){ return0; } int ans = 0; stack<int>st; for(int i = 0; i < n; i++){ while(!st.empty() && height[i] > height[st.top()]){ int top = st.top(); st.pop(); if(st.empty()) break; int width = i - st.top() - 1; int h = min(height[i],height[st.top()]) - height[top]; ans += width * h; } st.push(i); } return ans; }