|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<iostream>
- #include<cstdio>
- #include<stack>
- #define int long long
- using namespace std;
- const int Max = 100005;
- int a[Max];
- int sum[Max];
- int l[Max];
- stack<int>s;
- signed main()
- {
- int n;
- cin >> n;
- for(register int i = 1;i <= n;++ i)
- cin >> a[i],sum[i] = sum[i - 1] + a[i];
- int M = 0;
- for(register int i = 1;i <= n;++ i)
- {
- while(!s.empty() && a[i] < a[s.top()])
- {
- M = max(M,(sum[i - 1] - sum[l[s.top()]]) * a[s.top()]);
- s.pop();
- }
- if(!s.empty())
- l[i] = s.top();
- else
- l[i] = 0;
- s.push(i);
- }
- cout << M << endl;
- return 0;
- }
复制代码 |
|