题目背景
Subtask 1~5 为原数据,Subtask 6 为 hack 数据。
题目描述
给定两个长度为 n 的整数序列 a,b,满足:
-
∀i∈[1,n),ai≤ai+1,bi≤bi+1。
-
∀i∈[1,n],ai≤bi。
有一个长度为 n 的实数序列 c,满足 ci∈[ai,bi],求 c 的方差的最大值。
你只需要输出答案乘上 n2 之后的结果。容易证明这是一个整数。
提示
一个长度为 n 的序列 a 的方差为:$\dfrac{1}{n}\sum\limits_{i=1}^n (a_i-\overline{a})^2$。其中 a=n1i=1∑nai。
本题的计算过程中可能会涉及到超过 long long
范围的数,此时可能需要用到 __int128
进行处理。
我们提供了以下代码,它可以用于输出一个 __int128
类型的数:
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 个整数,表示 a1,a2,…,an。
第三行,n 个整数,表示 b1,b2,…,bn。
输出格式
共一行,一个整数,表示答案。
2
1 10
1 10
81
3
1 2 3
3 4 5
26
提示
对于 100% 的数据,1≤n≤106,1≤ai,bi≤109。
Subtask1(10%):n≤2×103,ai=bi≤105。
Subtask2(20%):n≤10,ai,bi≤5。
Subtask3(20%):n≤2×103,ai,bi≤105。
Subtask4(20%):n≤105,ai,bi≤2×103。
Subtask5(30%):无特殊限制。
样例说明 1
c 只可能为 (1,10)。
样例说明 2
一种最优的 c 为 (1,2,5)。