这个题就是基于前缀和的
通过前缀和快速求出这两段序列的和,然后相乘与最小值判断,以此求出最小值
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);
}
}



京公网安备 11010502036488号