#P8920. 『MdOI R5』Variance

    ID: 9810 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>数学洛谷原创O2优化洛谷月赛

『MdOI R5』Variance

背景

Subtask 1~5 为原数据,Subtask 6 为 hack 数据。

题目描述

给定两个长度为 nn 的整数序列 a,ba,b,满足:

  • ∀i∈[1,n),ai≤ai+1,bi≤bi+1\forall i\in [1,n),a_i\le a_{i+1},b_i\le b_{i+1}。

  • ∀i∈[1,n],ai≤bi\forall i\in [1,n],a_i\le b_i。

有一个长度为 nn 的实数序列 cc,满足 ci∈[ai,bi]c_i\in [a_i,b_i],求 cc 的方差的最大值。

你只需要输出答案乘上 n2n^2 之后的结果。容易证明这是一个整数。

提示

一个长度为 nn 的序列 aa 的方差为:$\dfrac{1}{n}\sum\limits_{i=1}^n (a_i-\overline{a})^2$。其中 a‾=1n∑i=1nai\overline{a}=\dfrac{1}{n}\sum\limits_{i=1}^n a_i。

本题的计算过程中可能会涉及到超过 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);
}

输入格式

第一行,一个整数,表示 nn。

第二行,nn 个整数,表示 a1,a2,…,ana_1,a_2,\dots,a_n。

第三行,nn 个整数,表示 b1,b2,…,bnb_1,b_2,\dots,b_n。

输出格式

共一行,一个整数,表示答案。

2
1 10
1 10
81
3
1 2 3
3 4 5
26

提示

对于 100%100\% 的数据,1≤n≤1061\le n\le 10^6,1≤ai,bi≤1091\le a_i,b_i\le 10^9。

Subtask⁡1(10%)\operatorname{Subtask} 1(10\%):n≤2×103n\le 2\times 10^3,ai=bi≤105a_i=b_i\le 10^5。

Subtask⁡2(20%)\operatorname{Subtask} 2(20\%):n≤10n\le 10,ai,bi≤5a_i,b_i\le 5。

Subtask⁡3(20%)\operatorname{Subtask} 3(20\%):n≤2×103n\le 2\times 10^3,ai,bi≤105a_i,b_i\le 10^5。

Subtask⁡4(20%)\operatorname{Subtask} 4(20\%):n≤105n\le 10^5,ai,bi≤2×103a_i,b_i\le 2\times 10^3。

Subtask⁡5(30%)\operatorname{Subtask} 5(30\%):无特殊限制。

样例说明 1

cc 只可能为 (1,10)(1,10)。

样例说明 2

一种最优的 cc 为 (1,2,5)(1,2,5)。