这个题就是基于前缀和的

通过前缀和快速求出这两段序列的和,然后相乘与最小值判断,以此求出最小值


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		long a[]=new long[n];
		long sum[]=new long[n+1];
		for (int i = 0; i < a.length; i++) {
			a[i]=scanner.nextLong();
			sum[i+1]=sum[i]+a[i];
		}
		long min=Long.MAX_VALUE;
		for (int i = 1; i < a.length; i++) {
			long res1=sum[i]-sum[0];
			long res2=sum[sum.length-1]-sum[i];
			long result=res1*res2;
			if(result<min)min=result;
		}
		System.out.println(min);

	}

}