#P8920. 『MdOI R5』Variance

    ID: 8033 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>数学洛谷原创O2优化洛谷月赛

『MdOI R5』Variance

题目背景

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

题目描述

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

  • i[1,n),aiai+1,bibi+1\forall i\in [1,n),a_i\le a_{i+1},b_i\le b_{i+1}

  • i[1,n],aibi\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=1ni=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\% 的数据,1n1061\le n\le 10^61ai,bi1091\le a_i,b_i\le 10^9

Subtask1(10%)\operatorname{Subtask} 1(10\%)n2×103n\le 2\times 10^3ai=bi105a_i=b_i\le 10^5

Subtask2(20%)\operatorname{Subtask} 2(20\%)n10n\le 10ai,bi5a_i,b_i\le 5

Subtask3(20%)\operatorname{Subtask} 3(20\%)n2×103n\le 2\times 10^3ai,bi105a_i,b_i\le 10^5

Subtask4(20%)\operatorname{Subtask} 4(20\%)n105n\le 10^5ai,bi2×103a_i,b_i\le 2\times 10^3

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

样例说明 1

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

样例说明 2

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