已结束 ACOI #1

A4999 | 统计……?

时间限制3s
内存限制256MB
通过 / 提交0/0

题目描述

在学过平均数、中位数、众数后,数学老师交给 cjdst 一个任务,要求他用代码实现以下功能。

给定两个长度为 $N$ 的数组 $A,B$。

这个代码需要执行 $Q$ 次操作,第 $i$ 次操作的类型为 $T_i$:

- $T_i=1$:给定三个数 $L_i,R_i,X_i$,将 $A$ 数组中 $[L_i,R_i]$ 的所有数的值增加 $X_i$。

- $T_i=2$:给定两个数 $L_i,R_i$,以数组 $B$ 中 $[L_i,R_i]$ 的元素为权,查询 $A$ 数组中 $[L_i,R_i]$ 的加权平均数,即
$$ \dfrac{\sum_{j=L_i}^{R_i} A_j\times B_j}{\sum_{j=L_i}^{R_i} B_j} $$
为避免浮点数精度问题,请将结果向下取整。

请你帮帮 cjdst。

输入格式

第一行两个正整数 $N,Q$。
第二行 $N$ 个正整数 $A_i$。
第三行 $N$ 个正整数 $B_i$。
接下来 $Q$ 行,每行若干个正整数,可能是以下的情况:
$\tt{1\text{ }L_i\text{ }R_i\text{ }X_i}$


这表示 $T_i=1$ 的情况。
$\tt{2\text{ }L_i\text{ }R_i}$


这表示 $T_i=2$ 的情况。

输出格式

对于每个 $T_i=2$ 的查询,在单独的一行输出答案。

输入输出样例

输入 #1
5 5
4 2 4 5 1
1 2 4 4 5
1 1 5 1
2 3 4
2 2 5
1 1 3 3
2 4 4
输出 #1
5
4
6
C++ 编辑器
输入
输出