题号:NC207503
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
输入描述:
第一行一个正整数

,表示一共有

组输入。
对于每组输入,第一行输入一个正整数

,表示数组的长度。第二行输入

个数,表示数组里的元素。第三行输入一个正整数

,表示操作的次数。
接下来

行,每行先输入一个正整数

,对应三种操作,对于操作1,输入三个数

,代表把所有
)
替换成

,对于操作2,输入三个数

,代表把所有
)
替换成

,对于操作3,输入两个数

,询问区间

里所有数的乘积对

取模。
输出描述:
对于每个操作3输出一行。
示例1
输入
复制
2
5
1 2 3 4 5
5
3 1 1
3 1 2
3 1 3
3 1 4
3 1 5
5
2 2 2 2 2
6
1 1 5 2
3 1 3
2 2 4 2
3 3 5
1 1 3 3
3 1 5
输出
复制
1
2
6
24
120
64
256
6869905
说明
第一组
1
1*2
1*2*3
1*2*3*4
1*2*3*4*5
第2组
第1个操作以后,数组成了4,4,4,4,4
第2个操作 4*4*4
第3个操作以后,数组成了4,8,8,8,4
第4个操作8*8*4
第5个操作以后,数组成了64,512,512,8,4
第6个操作 64*512*512*8*4 这个数模10000019的结果就是6869905
备注:

\\ m = 3n