#include <cstdio>

int seg[20001], C, N;
inline int min(int a, int b){ return seg[a]>seg[b]?b:a; }
inline int max(int a, int b){ return a>b?a:b; }
int get_min(int s, int e)
{
    int val = s;
    for(int i = s+1 ; i <= e ; i++ )
        val = min(i, val);
    return val;
}
int solve(int s, int e)
{
    if( s <= e )
    {
        int m = get_min(s, e);
        return max( (e-s+1)*seg[m], max( solve(s, m-1), solve(m+1, e) ) );
    }
    return 0;
}
int main()
{
    freopen(".6.in","r",stdin);
   // freopen(".17.out","w",stdout);
  //  scanf("%d", &C);
  //  while(C--)
    {
        scanf("%d", &N);
        for(int i = 0 ; i < N ; i++ )
            scanf("%d", seg+i);
        printf("%d\n", solve(0, N-1));
    }
}
