发个题解呗~

1 条评论

  • #include #include #include #include using namespace std; int n,p; int a[100010]; int s[100010],w[100010]; long long ans;

    int main() { while(cin>>n&&n) { ans=0; p=0; for(int i=1;i<=n;i++) scanf("%d",&a[i]); a[n+1]=0; for(int i=1;i<=n+1;i++) { if(a[i]>s[p]) s[++p]=a[i],w[p]=1; else{ int width=0; while(s[p]>a[i]) { width+=w[p]; ans=max(ans,(long long)width*s[p]); p--; } s[++p]=a[i],w[p]=width+1; } } cout<<ans<<endl; } }

    • 1

    信息

    ID
    1585
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    40
    已通过
    13
    上传者