摘苹果
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

又到了万物复苏的季节,家乡的苹果树结果了。像往常一样小龙同学被叫回家摘苹果。

假设需要采摘的一棵树上当前有a颗苹果,那么小龙会采摘\lceil \frac{a}{3} \rceil颗苹果,其中\lceil x \rceil表示不小于x的最小整数。

但是,为了可持续发展,若a小于10,那么小龙不会采摘这棵树的任何一颗苹果。

此外,小龙时不时会有一些疑问,想知道一些树上当前总共有多少颗苹果。

又或者想知道一些树中有多少棵苹果树上的苹果小于100颗。

那么就请你来帮助小龙同学吧。

输入描述:

12个正整数 nm。表示小龙同学家有n棵苹果树,m次采摘(或疑问)。

2n 个整数,第 i 个整数 a_i 表示第 i 棵苹果树上原本结有 a_i 颗苹果 。

接下来 m 行,每行共3个正整数op,l,r

op=1,表示小龙会采摘 [l,r] 区间内的苹果树。

op=2,表示小龙想知道 [l,r] 区间内的有多少棵苹果树上的苹果小于100颗。
op=3,表示小龙想知道 [l,r] 区间内的共有多少颗苹果。

输出描述:

对于每个 op=2或者op=3 的操作,输出11个整数表示答案。
示例1

输入

复制
5 5
1 10 100 1000 10000
2 1 5
3 1 5
1 1 5
2 1 5
3 1 5

输出

复制
2
11111
3
7405

备注:

对于 100\% 的数据,1 \leq n\leq 10^51 \leq m \leq 10^51 \leq a_i \leq 10^91 \leq op \leq 31 \leq l \leq r \leq n