#include using namespace std; long largestValue(vector A) { return -1; } void maxSubArraySum(int a[], int size); int main() { int n; cin >> n; vector A(n); for(int A_i = 0; A_i < n; A_i++){ cin >> A[A_i]; } int array[n] = {0}; for(int i = 0; i < n; i++) array[i] = A[i]; long result = largestValue(A); // cout << result << endl; maxSubArraySum(array, n); return 0; } void maxSubArraySum(int array[], int size) { int max_so_far = INT_MIN, max_ending_here = 0, start =0, end = 0, s=0; for (int i=0; i< size; i++ ) { max_ending_here += array[i]; if (max_so_far < max_ending_here) { max_so_far = max_ending_here; start = s; end = i; } if (max_ending_here < 0) { max_ending_here = 0; s = i + 1; } } long long cxValue = 0; for(int i = start; i <= end; i++){ for(int j = i+1; j <= end; j++){ // cout << array[i] * array[j] << endl << endl; cxValue = cxValue + ( array[i] * array[j]); } } cout << cxValue << endl; }