import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public long largestValue(int[] A) { // Return the largest value of any of A's nonempty subarrays. long val = 0l; long val1[] = new long[3]; if(A.length > 2){ for(int i = 0; i < A.length; i++){ for(int j = i; j < A.length; j++){ val1[0] = val1[0] + (A[i]+A[j]); } } val1[1] = largestValue(Arrays.copyOfRange(A, 0, (A.length - 2))); val1[2] = largestValue(Arrays.copyOfRange(A, 1, (A.length - 1))); Arrays.sort(val1); val = val1[2]; }else if(A.length == 2){ val = (A[0] * A[1]); } return val; } public static void main(String[] args) { Solution s = new Solution(); Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] A = new int[n]; for(int A_i = 0; A_i < n; A_i++){ A[A_i] = in.nextInt(); } long result = s.largestValue(A); System.out.println(result); in.close(); } }