3034: 斜率优化

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:2

题目描述

小Y是个算法爱好者,这天他正在整理做过的题,发现在斜率优化的目录下有一道他没做出来的题。题目描述是这样的:

给定一个长度为n的数列ai,定义函数 f(i, j) = (i - j)2 + g2(i, j) (1 ≤ i, j ≤ n),函数g可以由下面的代码得出:

int g(int i, int j) {
    int sum = 0;
    for (int k = min(i, j) + 1; k <= max(i, j); k = k + 1)
        sum = sum + a[k];
    return sum;
}

请求出mini!=j f(i, j)。

你能帮助小Y解出这题吗?

输入

第一行一个整数 n,表示数列长度

第二行 n 个整数表示数列 ai

输出

仅一行表示答案。

样例输入 复制

[Sample 1]
4
1 0 0 -1

[Sample 2]
2
1 -1

样例输出 复制

[Sample 1]
1

[Sample 2]
2

提示

20%的数据:n ≤ 100

50%的数据:n ≤ 1000

100%的数据:1 ≤ n ≤ 100000 ; |ai| ≤ 104