//盛最多水的容器:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i, ai)。
// 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为(i, ai) 和(i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int maxArea(vector<int>& height) {
int left = 0, right = height.size() - 1;
int maxArea = 0;
int maxLeft = left, maxRight = right;
while (left < right) {
int currentArea = min(height[left], height[right]) * (right - left);
if (currentArea > maxArea) {
maxArea = currentArea;
maxLeft = left;
maxRight = right;
}
if (height[left] < height[right]) {
left++;
}
else {
right--;
}
}
return maxArea;
}
int main() {
vector<int> heights = { 2, 3, 1, 4, 6, 1, 3 };
cout << maxArea(heights);
//pair<int, int> result = maxArea(heights);
//cout << result.first << " " << result.second << endl;
return 0;
}