背景
在统计中,方差是表示数据的散乱程度的一个数。
在数列a1,a2,a3,...,an中:
我想计算数列上的某个区间的方差。
课题
有个数列A0,A1,A2,...,An−1。首先通过init(N,A)给出A的初始值。
请实现以下过程
最初在调用update(i,x)或variance(i,j)之前只调用该过程一次。这个过程没有返回值。
这个过程被调用多次。一次调用对应于一次数列A值的变化。这个过程没有返回值。
这个过程被调用多次。当把从第i项到第j项的值(包括端点)。答案记得取整.
例子
N=3,A={0,12,6}
首先,过程init由上述参数进行调用。然后,以任意顺序执行多个update过程或variance函数的调用。以下是调用和正确的返回值的示例:
参数 |
返回值 |
variance(0,2) |
24 |
variance(1,2) |
9 |
update(2,0) |
无 |
variance(0,2) |
32 |
variance(1,2) |
36 |
update(1,11) |
无 |
variance(0,2) |
26 |
** 输入格式 **
第一行一个整数N,表示A数组元素个数
第二行接下来N个整数A0,A1,A2,..An−1(用空格分隔),Ai表示第i项的初始值
第三行一个整数M,M=P+Q
第四至第M+3行,第i+4行输入整数Ti,Xi,Yi(用空格分隔),Ti=0表示调用update(Xi,Yi),Ti=1表示调用variance(Xi,Yi)
输出格式
对于每个variance函数的调用,输出结果
数据规模
50%的数据,1≤N≤1000,1≤P+Q≤1000
另50%的数据,1≤N≤100000,1≤P+Q≤100000