首页 > 试题广场 >

求最值

[编程题]求最值

给你一个长为n的序列a

定义f(i,j)=(i-j)2+g(i,j)2

g是这样的一个函数
inline int g(int i, int j) {
    register int sum = 0; 
    for (register int k = min(i, j) + 1; k <= max(i, j); k++) {
        sum = sum + a[k];
    }
    return sum;
}
求最小的f(i,j)的值,i!=j
.

输入描述:
第一行一个数n
之后一行n个数表示序列a


输出描述:
输出一行一个数表示答案
示例1

输入

4
1 0 0 -1

输出

1

备注:

对于100%的数据,2 <= n <= 100000 , |ai| <= 10000

这道题你会答吗?花几分钟告诉大家答案吧!