#include #include #include #include #include #include #include long int largestValue(int size, int* A) { int max_so_far = INT_MIN, max_ending_here = 0; for (int i = 0; i < size-1; i++) { max_ending_here = max_ending_here + A[i]*A[i+1]; if (max_so_far < max_ending_here) max_so_far = max_ending_here; //if (max_ending_here < 0) // max_ending_here = 0; } return max_so_far; // Return the largest value of any of A's nonempty subarrays. } int main() { int n; scanf("%i", &n); int *A = malloc(sizeof(int) * n); for (int A_i = 0; A_i < n; A_i++) { scanf("%i",&A[A_i]); } long int result = largestValue(n, A); printf("%ld\n", result); return 0; }