import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); //求前缀和 //后缀和=总和-前缀和!! //result=后缀和*前缀和 int n=in.nextInt(); int [] arr=new int[n]; long sum=0; //用 long 防止溢出 long min=Long.MAX_VALUE; for(int i=0;i<n;i++){ arr[i]=in.nextInt(); sum+=arr[i]; } long left=0; //循环中计算了 i 从 0 到 n-1 的所有位置,包括 i = n-1。 //当 i = n-1 时,left = sum,右边部分为 sum - left = 0,即右边是一个空序列。 //题目要求:两个非空序列! //所以,切割点只能在 i = 0 到 i = n-2 之间,即左边至少包含前1个元素,右边至少包含最后一个元素 for(int i=0;i<n-1;i++){ left+=arr[i]; min=Math.min(min,(left*(sum-left))); } System.out.println(min); } }