CF794F.Leha and security system

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Bankopolis, the city you already know, finally got a new bank opened! Unfortunately, its security system is not yet working fine... Meanwhile hacker Leha arrived in Bankopolis and decided to test the system!

Bank has nn cells for clients' money. A sequence from nn numbers a1,a2,...,ana_{1},a_{2},...,a_{n} describes the amount of money each client has. Leha wants to make requests to the database of the bank, finding out the total amount of money on some subsegments of the sequence and changing values of the sequence on some subsegments. Using a bug in the system, Leha can requests two types of queries to the database:

  • 1 l r x y denoting that Leha changes each digit xx to digit yy in each element of sequence aia_{i} , for which l<=i<=rl<=i<=r is holds. For example, if we change in number 1198438111984381 digit 88 to 44 , we get 1194434111944341 . It's worth noting that Leha, in order to stay in the shadow, never changes digits in the database to 00 , i.e. y0y≠0 .
  • 2 l r denoting that Leha asks to calculate and print the sum of such elements of sequence aia_{i} , for which l<=i<=rl<=i<=r holds.

As Leha is a white-hat hacker, he don't want to test this vulnerability on a real database. You are to write a similar database for Leha to test.

输入格式

The first line of input contains two integers nn and qq ( 1<=n<=1051<=n<=10^{5} , 1<=q<=1051<=q<=10^{5} ) denoting amount of cells in the bank and total amount of queries respectively.

The following line contains nn integers a1,a2,...,ana_{1},a_{2},...,a_{n} ( 1<=a_{i}<10^{9} ) denoting the amount of money in each cell initially. These integers do not contain leading zeros.

Each of the following qq lines has one of the formats:

  • 1 l r x y ( 1<=l<=r<=n1<=l<=r<=n , 0<=x<=90<=x<=9 , 1<=y<=91<=y<=9 ), denoting Leha asks to change each digit xx on digit yy for each element aia_{i} of the sequence for which l<=i<=rl<=i<=r holds;
  • 2 l r ( 1<=l<=r<=n1<=l<=r<=n ), denoting you have to calculate and print the sum of elements aia_{i} for which l<=i<=rl<=i<=r holds.

输出格式

For each second type query print a single nuDuan2baka开始有一个长度为nn的序列,现在有kk次操作:
1.1  l  r  x  y1\; l\; r\; x\; yll~rr区间内所有数的xx都变成yy(假设执行操作1  l  r  4  81\; l\; r\; 4\; 8,区间内有一个数443,将会变成883)
2.2  l  r2\; l\; r询问区间llrr的和
(1n,q105,0x9,1y91\le n,q\le 10^5,0\le x \le 9,1\le y \le 9)mber denoting the required sum.

输入输出样例

  • 输入#1

    5 5
    38 43 4 12 70
    1 1 3 4 8
    2 2 4
    1 4 5 0 8
    1 2 5 8 7
    2 1 5
    

    输出#1

    103
    207
    
  • 输入#2

    5 5
    25 36 39 40 899
    1 1 3 2 7
    2 1 2
    1 3 5 9 1
    1 4 4 0 9
    2 1 5
    

    输出#2

    111
    1002
    

说明/提示

Let's look at the example testcase.

Initially the sequence is [38,43,4,12,70][38,43,4,12,70] .

After the first change each digit equal to 44 becomes 88 for each element with index in interval [1; 3][1; 3] . Thus, the new sequence is [38,83,8,12,70][38,83,8,12,70] .

The answer for the first sum's query is the sum in the interval [2; 4][2; 4] , which equal 83+8+12=10383+8+12=103 , so the answer to this query is 103103 .

The sequence becomes [38,83,8,12,78][38,83,8,12,78] after the second change and [38,73,7,12,77][38,73,7,12,77] after the third.

The answer for the second sum's query is 38+73+7+12+77=20738+73+7+12+77=207 .

首页