#include <iostream>
template< class T > T _max(T a, T b) { return (!(a < b) ? a : b); }
#define i64 long long
const int MAX = 100009;
i64 calc(int *ht, int n)
{
i64 ret = 0;
int top = 1, st[MAX], i;
ht[0] = st[0] = ht[++n] = 0;
for(i = 1; i <= n; i++)
{
while(top > 1 && ht[st[top-1]] >= ht[i])
{
ret = _max(ret, (i64)ht[st[top-1]]*(i64)(i - st[top-2]-1));
top--;
}
st[top++] = i;
}
return ret;
}
int main() {
int n, i, ht[MAX];
while(scanf("%d", &n)==1 && n)
{
for(i = 1; i <= n; i++)
scanf("%d", &ht[i]);
printf("%lld\n", calc(ht, n));
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8IGNsYXNzIFQgPiBUIF9tYXgoVCBhLCBUIGIpIHsgcmV0dXJuICghKGEgPCBiKSA/IGEgOiBiKTsgfQoKI2RlZmluZSBpNjQgbG9uZyBsb25nCgpjb25zdCBpbnQgTUFYID0gMTAwMDA5OwoKaTY0IGNhbGMoaW50ICpodCwgaW50IG4pCnsKCWk2NCByZXQgPSAwOwoJaW50IHRvcCA9IDEsIHN0W01BWF0sIGk7CglodFswXSA9IHN0WzBdID0gaHRbKytuXSA9IDA7Cglmb3IoaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewoJCXdoaWxlKHRvcCA+IDEgJiYgaHRbc3RbdG9wLTFdXSA+PSBodFtpXSkKICAgICAgICB7CgkJCXJldCA9IF9tYXgocmV0LCAoaTY0KWh0W3N0W3RvcC0xXV0qKGk2NCkoaSAtIHN0W3RvcC0yXS0xKSk7CgkJCXRvcC0tOwoJCX0KCQlzdFt0b3ArK10gPSBpOwoJfQoJcmV0dXJuIHJldDsKfQoKaW50IG1haW4oKSB7CglpbnQgbiwgaSwgaHRbTUFYXTsKCXdoaWxlKHNjYW5mKCIlZCIsICZuKT09MSAmJiBuKQogICAgewoJCWZvcihpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgICAgIHNjYW5mKCIlZCIsICZodFtpXSk7CgkJcHJpbnRmKCIlbGxkXG4iLCBjYWxjKGh0LCBuKSk7Cgl9CglyZXR1cm4gMDsKfQo=