8 条题解
- 
  1
C++:
#include
#include
#include
using namespace std;
int q[100001];
int a[100001];
int n,t;
int ll;
//int h[100001];
int l[100001];
int r[100001];
void make(int an[100001])
{ //int l=1;
ll=0; a[0]=-1; for(int i=1;i<=n;i++) { while(a[q[ll]]>=a[i]) { ll--; } an[i]=q[ll]; q[++ll]=i; }}
long long maxn;
int main()
{
while(scanf("%d",&n)) { if(n==0) { return 0; } for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } a[0]=-1; make(l); reverse(a+1,a+1+n); make(r); //int j=n; maxn=0; for(int i=1,j=n;i<=n;i++,j--) { maxn=max(maxn,a[i]*(n-l[j]-r[i]+1-(long long)(1))); // j--; } printf("%lld\n",maxn); }}
 
信息
- ID
 - 42
 - 时间
 - 1000ms
 - 内存
 - 128MiB
 - 难度
 - 5
 - 标签
 - 递交数
 - 265
 - 已通过
 - 103
 - 上传者