区间加区间sin和
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给出一个长度为 n 的整数序列 ,进行 m 次操作,操作分为两类。

操作 1:给出 l,r,v,将 分别加上 v

操作 2:给出 l,r,询问

输入描述:

第一行一个整数 n

接下来一行 n 个整数表示

接下来一行一个整数 m

接下来 m 行,每行表示一个操作,操作 1 表示为 ,操作 2 表示为
保证 。保证所有输入的数都是正整数。

输出描述:

对每个操作 $2$,输出一行,表示答案。误差不超过即为正确。
示例1

输入

复制
5
1 3 1 5 5
5
1 5 5 5
2 3 3
2 1 5
2 2 2
2 4 4

输出

复制
0.841471
0.321117
0.141120
-0.958924

备注:

原题链接:https://www.luogu.com.cn/problem/P6327
P.S.: 由于教学中用到的做法常数可能比较大,放宽了时限。