问题 4883 --4.维护数列

4883: 4.维护数列

题目描述

  $Fib$ 数列为 $1,1,2,3,5,8, \ldots$,满足 $f_i=f_{i-1}+f_{i-2}$,$f_1=f_2=1$。
给定一个长度为 $n$ 的数列 $a$,你需要对其执行 $m$ 次操作,格式如下:
 $1\ l\ r$ 表示给 $a_i$ 加上 $f_{i-l+1}$,其中 $l \leq i \leq r$;
 $2\ l\ r$ 表示询问 $\sum_{i=l}^r a_i$ 的值。

现在你需要实现上述操作,并给出所有询问的答案。

输入

第一行两个整数 $n$ 和 $m$,表示数列 $a$ 的长度和总的操作次数。
第二行 $n$ 个整数,表示数列 $a$。
接下来 $m$ 行,每一行给出三个整数,表示两种操作中的一种,保证 $1 \leq l \leq r \leq n$。

输出

对于每个 $2$ 操作,输出一行一个整数表示答案。

样例输入输出

输入#1 复制
4 4
1 2 3 4
1 1 4
2 1 4
1 2 4
2 1 3
输出#1 复制
17
12

提示

【样例解释】
第一次操作,数列变为 $2,3,5,7$。
第二次询问,$sum=2+3+5+7=17$。
第三次操作,数列变为 $2,4,6,9$。
第四次询问,$sum=2+4+6=12$。

【数据范围】
对于 $20\%$ 的数据, $1 \leq n,m \leq 100$;
对于 $40\%$ 的数据, $1 \leq n,m \leq 1000$;
对于 $40\%$ 的数据, $1 \leq n,m \leq 100000$。

序号 标题 作者 发表时间 费用 订购数 操作