#P2348. Tongshen黄焖鸡米饭系列——Tongshen玩数组
Tongshen黄焖鸡米饭系列——Tongshen玩数组
Description
Tongshen给你两个数组A和B,他们都有n个元素,现在有以下三种操作:1) 1 l r : 这表示你需要让(l <= i <= r)中的所有A[i]变成(A[i] + B[i]);
2) 2 l r : 这表示你需要让(l <= i <= r)中的所有B[i]变成(A[i] + B[i]);
3) 3 l r : 这表示希望你求出(l <= i <=r)中的所有(A[i] * B[i])的和,并输出其对10003取余的结果.
Input Format
输入数据的第一行只有一个整数t,表示一共有t组数据。对于每组数据的第一行只有一个整数n,表示数组大小;第二行有n个整数表示数组A;第三行有n个整数表示数组B;第四行有一个整数m,表示操作数;
接下来得m行,每行有三个整数op、l 和 r,其中op表示操作方法,与上面描述相对应,l和r表示一个需要操作的区间,数组下标从1开始。
数据范围:1<= t<= 10, 1<= n<= 100000, 1<= A[i]<= 100, 1<= B[i]<= 100, 1<=m<=100000, 1<= op<= 3, 1<= l<= r<= n。
Output Format
输出:对于每个“3”操作,输出一行包含一个整数,表示对应区间的 ( sigma(A[i]*B[i]) % 10003 )。1
5
1 2 3 4 5
5 4 3 2 1
10
1 1 2
3 1 5
2 1 2
3 1 5
1 1 5
3 1 5
2 1 5
3 1 5
2 2 2
3 1 576
148
383
1036
1292