CF266E.More Queries to Array...

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You've got an array, consisting of nn integers: a1,a2,...,ana_{1},a_{2},...,a_{n} . Your task is to quickly run the queries of two types:

  1. Assign value xx to all elements from ll to rr inclusive. After such query the values of the elements of array al,al+1,...,ara_{l},a_{l+1},...,a_{r} become equal to xx .
  2. Calculate and print sum , where kk doesn't exceed 55 . As the value of the sum can be rather large, you should print it modulo 1000000007 (109+7)1000000007 (10^{9}+7) .

输入格式

The first line contains two integers nn and mm ( 1<=n,m<=1051<=n,m<=10^{5} ), showing, how many numbers are in the array and the number of queries, correspondingly. The second line contains nn integers: a1,a2,...,ana_{1},a_{2},...,a_{n} ( 0<=ai<=1090<=a_{i}<=10^{9} ) — the initial values of the array elements.

Then mm queries follow, one per line:

  1. The assign query has the following format: "", ( 1<=l<=r<=n; 0<=x<=1091<=l<=r<=n; 0<=x<=10^{9} ).
  2. The query to calculate the sum has the following format: "", ( 1<=l<=r<=n; 0<=k<=51<=l<=r<=n; 0<=k<=5 ).

All numbers in the input are integers.

输出格式

For each query to calculate the sum print an integer — the required sum modulo 1000000007 (109+7)1000000007 (10^{9}+7) .

输入输出样例

  • 输入#1

    4 5
    5 10 2 1
    ? 1 2 1
    = 2 2 0
    ? 2 4 3
    = 1 4 1
    ? 1 4 5
    

    输出#1

    25
    43
    1300
    
  • 输入#2

    3 1
    1000000000 1000000000 1000000000
    ? 1 3 0
    

    输出#2

    999999986
    
首页