#include #include #include #include #include #include using namespace std; typedef vector array; typedef pair elem; typedef map reg; int main(void){ int N; ifstream cin("feel.in"); while(cin >> N && N != 0 ){ array seq; int t; for(int i = 0 ; i < N ; i ++){ cin >> t; seq.push_back(t); } vector tom; tom.push_back(0); for(int i = 0 ; i < N ; i ++){ tom.push_back(seq[i]+tom.back()); } vector elements; for(int i = 0 ; i < N ; i ++){ elements.push_back(make_pair(seq[i],i)); } sort(elements.begin(),elements.end()); map region; region[-1] = -1; region[N] = -1; long long record = -1; int recfrom = 0; int recto = 0; for(int i = 0 ; i < N ; i ++){ int taken = elements[i].second; int from; int to; reg::iterator rit; rit = region.upper_bound(taken); rit --; from = rit->first + 1; rit ++; to = rit->first; region[taken] = -1; long long rectmp = tom[to] - tom[from]; rectmp *= elements[i].first; if(rectmp > record){ record = rectmp; recfrom = from+1; recto = to; } } cout << record <