#include #include #define pb push_back #define pf push_front #define pp pop_back #define sz(a) (int)(a.size()) #define mp make_pair #define F first #define S second #define next _next #define prev _prev #define left _left #define right _right #define y1 _y1 #define all(x) x.begin(), x.end() #define what_is(x) #x << " is " << (x) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair pii; typedef pair pll; const int N = (int)1e6 + 123; const ll INF = (ll)1e18 + 123; const int inf = (int)1e9 + 123; const int MOD = (int)1e9 + 7; void megaRandom() { unsigned int FOR; asm("rdtsc" : "=A"(FOR)); srand(FOR); } int n, a[N]; int main() { megaRandom(); cin >> n; for(int i = 1; i <= n; i ++) { cin >> a[i]; } ll mx = 0; for(int i = 1; i <= n; i ++) { int sum = 0; ll cost = 0; for(int j = i; j <= n; j ++) { cost += 1ll * sum * a[j]; sum += a[j]; mx = max(mx, cost); } } cout << mx; return 0; }