『MdOI R5』Variance
题目背景
Subtask 1~5 为原数据,Subtask 6 为 hack 数据。
题目描述
给定两个长度为 $n$ 的整数序列 $a,b$,满足:
- $\forall i\in [1,n),a_i\le a_{i+1},b_i\le b_{i+1}$。
- $\forall i\in [1,n],a_i\le b_i$。
有一个长度为 $n$ 的实数序列 $c$,满足 $c_i\in [a_i,b_i]$,求 $c$ 的方差的最大值。
你只需要输出答案乘上 $n^2$ 之后的结果。容易证明这是一个整数。
### 提示
一个长度为 $n$ 的序列 $a$ 的方差为:$\dfrac{1}{n}\sum\limits_{i=1}^n (a_i-\overline{a})^2$。其中 $\overline{a}=\dfrac{1}{n}\sum\limits_{i=1}^n a_i$。
本题的计算过程中可能会涉及到超过 `long long` 范围的数,此时可能需要用到 `__int128` 进行处理。
我们提供了以下代码,它可以用于输出一个 `__int128` 类型的数:
``` cpp
void print(__int128 x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x<10)
{
putchar(x+48);
return;
}
print(x/10);
putchar(x%10+48);
}
```
输入输出格式
输入格式
第一行,一个整数,表示 $n$。
第二行,$n$ 个整数,表示 $a_1,a_2,\dots,a_n$。
第三行,$n$ 个整数,表示 $b_1,b_2,\dots,b_n$。
输出格式
共一行,一个整数,表示答案。
输入输出样例
输入样例 #1
2
1 10
1 10
输出样例 #1
81
输入样例 #2
3
1 2 3
3 4 5
输出样例 #2
26
说明
对于 $100\%$ 的数据,$1\le n\le 10^6$,$1\le a_i,b_i\le 10^9$。
$\operatorname{Subtask} 1(10\%)$:$n\le 2\times 10^3$,$a_i=b_i\le 10^5$。
$\operatorname{Subtask} 2(20\%)$:$n\le 10$,$a_i,b_i\le 5$。
$\operatorname{Subtask} 3(20\%)$:$n\le 2\times 10^3$,$a_i,b_i\le 10^5$。
$\operatorname{Subtask} 4(20\%)$:$n\le 10^5$,$a_i,b_i\le 2\times 10^3$。
$\operatorname{Subtask} 5(30\%)$:无特殊限制。
#### 样例说明 1
$c$ 只可能为 $(1,10)$。
#### 样例说明 2
一种最优的 $c$ 为 $(1,2,5)$。