求最值
题号:NC15052
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给你一个长为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