#include <bits/stdc++.h>
#define rep(i, f, n) for (ll i = (f); i < (ll)(n); i++)
#define repe(i, f, n) for (ll i = (f); i <= (ll)(n); i++)
using namespace std;
using ll = long long;
using pint = pair<int, int>;

template <class T>
void chmin(T& a, T b) {
  if (a > b) a = b;
}

template <class T>
void chmax(T& a, T b) {
  if (a < b) a = b;
}

int main() {
  int n;
  cin >> n;
  vector<int> a(n);
  rep(i, 0, n) cin >> a[i];

  ll ans = 0;
  rep(l, 0, n) {
    int x = a[l];
    rep(r, l, n) {
      chmin(x, a[r]);
      chmax(ans, x * (r - l + 1));
    }
  }

  cout << ans << endl;

  return 0;
}

#include<iostream>
#include<string>
#include<algorithm>
#include<unordered_set>
using namespace std;
long long hasht[26];
void toZ(){
    for(int i=0;i<26;i++)
        hasht[i]=0;
}
long long getC(char c){
    long long cnt=0;
    for(int i=0;i<26;i++){
        if('a'+i!=c)cnt+=hasht[i];
    }
    toZ();
    return cnt;
}
int main(){
   string s;
   long long cnt=0;
   cin>>s;
   reverse(s.begin(),s.end());
   int n=s.size();
   int last=-1;
   char cc='W';
   hasht[s[0]-'a']++;
   hasht[s[1]-'a']++;
   for(int i=2;i<n;i++){
       if(s[i]==s[i-1]&&s[i-1]!=s[i-2]){    
           cnt+=getC(s[i]);
           if(cc!=s[i]){
             cnt+=last+1;
           }
         	last=i;
            cc=s[i];
       }else{
           hasht[s[i]-'a']++;
       }
   }
   cout<<cnt;
  	return 0;
}