#include <stdio.h>#include <stdlib.h> long long stick[ 100005 ];int MUQ[ 100005 ];int L[ 100005 ],R[ 100005 ];int main(){ int n; while ( scanf("%d",&n) && n ) { for ( int i = 1 ; i <= n ; ++ i ) scanf("%lld",&stick[ i ]); stick[ 0 ] = -1; stick[ n+1 ] = -1; int tail = 0; MUQ[ 0 ] = 0; for ( int i = 1 ; i <= n+1 ; ++ i ) { while ( tail >= 0 && stick[ MUQ[ tail ] ] > stick[ i ] ) R[ MUQ[ tail -- ] ] = i; MUQ[ ++ tail ] = i; } tail = 0; MUQ[ 0 ] = n+1; for ( int i = n ; i >= 0 ; -- i ) { while ( tail >= 0 && stick[ MUQ[ tail ] ] > stick[ i ] ) L[ MUQ[ tail -- ] ] = i; MUQ[ ++ tail ] = i; } long long Max = 0,Temp = 0; for ( int i = 1 ; i <= n ; ++ i ) { Temp = stick[ i ]*(R[ i ]-L[ i ]-1); if ( Max < Temp ) Max = Temp; } printf("%lldn",Max); } return 0;}