#include <vector>
#include <algorithm>
#include <climits>
using VecI = std::vector<int>;
class Solution {
public:
int maxArea(VecI& h) {
if (h.size() == 2) {
return std::min(h[0], h[1]);
}
int left = 0, right = h.size() - 1;
int currentMax = INT_MIN;
while (left < right) {
int area = std::min(h[left], h[right]) * (right - left);
if (area > currentMax) currentMax = area;
if (h[left] < h[right]) left++;
else right--;
}
return currentMax;
}
};