CSP 201312-3 最大的矩形 C++

 1 #include <iostream>
 2 #include <vector>
 3 #include <algorithm>
 4 
 5 int main() {
 6     int x{},some{};
 7     std::cin >> x;
 8     std::vector<std::vector<int>> n(x+1, std::vector<int>(3,0));//数组n 格式为 [高 - 长 - 面积]
 9     std::vector<int> tmp(x, 0);
10 
11     for (int i{}; i < x; i++) {
12         std::cin >> tmp[i];
13     }
14     
15     for (int i{}; i < x; i++) {
16         n[i][0] = tmp[i];
17         n[i][1]++;
18         n[i][2] = n[i][0] * n[i][1];
19 
20         for (int j{ i+1 }; j < x; j++) {
21             if (tmp[j] == 0) break;
22             
23             n[i][1]++;
24             if (tmp[j] <= n[i][0]) {
25                 n[i][0] = tmp[j];    
26             }
27             some = n[i][0] * n[i][1];
28             if (some >= n[i][2]) n[i][2] = some;
29         }
30     }
31     std::sort(std::begin(n), std::end(n), [](std::vector<int>& a, std::vector<int>& b) {return a[2] > b[2]; });//按面积排序
32     std::cout << n[0][2];
33 }

 

posted @ 2022-11-15 16:20  任由天明  阅读(78)  评论(0)    收藏  举报