#include <bits/stdc++.h>
#include <stack>
using namespace std;

int main() {
	
	stack<int> p;
	long long area=0,i,t=0,c,n;
	cin>>n;
	int a[n];
	for(i=0;i<n;i++){
		cin>>a[i];
	}
	for(i=0;i<n;i++){
		
		if(a[i]>a[p.top()] || p.empty()){
			p.push(i);
			continue;
		}
		
		else{
			while(a[i]<a[p.top()]){
				c=a[i]*(i-p.top()-1);
				if(p.empty()){
					t=a[i]*i;
					area=(area>=t)?area:t;
					break;
				}
				else
				p.pop();
				t=max(t,c);
			}
		//	c=a[i]*(i-p.top()-1);
			p.push(i);
		}
		
		area=(area>=t)?area:t;
	}
	cout<<area;
}
