#include using namespace std; long largestValue(vector arr) { // stores maximum sum sub-array found so far int max_so_far = 0; int n = arr.size(); int max_ending_here = 0; int start = 0, end = 0; int beg = 0; for (int i = 0; i < n; i++) { max_ending_here = max_ending_here + arr[i]; if (max_ending_here < 0) { max_ending_here = 0; beg = i + 1; } if (max_so_far < max_ending_here) { max_so_far = max_ending_here; start = beg; end = i; } } int sum = 0 ; for (int i = start; i <= end; i++) for (int j = i+1 ; j <=end ; j++) sum = sum + (arr[i]*arr[j]); return sum ; } int main() { int n; cin >> n; vector A(n); for(int A_i = 0; A_i < n; A_i++){ cin >> A[A_i]; } long result = largestValue(A); cout << result << endl; return 0; }