题目描述
给定 n 个整数构成的数组 A=[a1,a2,…,an]。
你需要将数组 A 划分为若干非空连续子段。对于划分得到的某个子段,它的偏差值定义为子段内整数和的平方。划分方案的偏差值定义为所有子段偏差值之和。
你需要最小化划分方案的偏差值。
形式化地,你可以将 A 划分为若干非空连续子段 A1,A2,…,Ak,使得 A=A1+A2+⋯+Ak,这里的 + 代表数组的连接。对于 1≤i≤k,设数组 Ai=[a1(i),…,ami(i)] 包含 mi 个整数。你需要最小化
i=1∑k(j=1∑miaj(i))2
输入格式
第一行,一个正整数 n,表示数组 A 的长度。
第二行,n 个整数 a1,a2,…,an,表示数组 A。
输出格式
一行,一个整数,表示划分方案偏差值的最小值。
样例
输入样例 1
4
1 2 -3 4
输出样例 1
6
输入样例 2
6
-1 -1 4 -5 -1 4
输出样例 2
0
数据范围
对于 40% 的测试点,保证 0≤ai≤50。
对于所有测试点,保证 1≤n≤2000,−100≤ai≤100。