Tinkoff Challenge - Final Round (Codeforces Round 414, rated, Div. 1 + Div. 2)
F
Leha and security system
Codeforces
2800
原题
← EG →
翻译中…

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 $*n*$ cells for clients' money. A sequence from $*n*$ numbers $*a*_{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 $*x*$ to digit $*y*$ in each element of sequence $*a*_{*i*}$, for which $*l* ≤ *i* ≤ *r*$ is holds. For example, if we change in number $11984381$ digit $8$ to $4$, we get $11944341$. It's worth noting that Leha, in order to stay in the shadow, never changes digits in the database to $0$, i.e. $*y* ≠ 0$.
  • 2 l r denoting that Leha asks to calculate and print the sum of such elements of sequence $*a*_{*i*}$, for which $*l* ≤ *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.

翻译中…

Input

翻译中…

The first line of input contains two integers $*n*$ and $*q*$ ($1 ≤ *n* ≤ 10^{5}$, $1 ≤ *q* ≤ 10^{5}$) denoting amount of cells in the bank and total amount of queries respectively.

翻译中…

The following line contains $*n*$ integers $*a*_{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 $*q*$ lines has one of the formats:

翻译中…
  • 1 l r x y ($1 ≤ *l* ≤ *r* ≤ *n*$, $0 ≤ *x* ≤ 9$, $1 ≤ *y* ≤ 9$), denoting Leha asks to change each digit $*x*$ on digit $*y*$ for each element $*a*_{*i*}$ of the sequence for which $*l* ≤ *i* ≤ *r*$ holds;
  • 2 l r ($1 ≤ *l* ≤ *r* ≤ *n*$), denoting you have to calculate and print the sum of elements $*a*_{*i*}$ for which $*l* ≤ *i* ≤ *r*$ holds.
翻译中…

Output

翻译中…

For each second type query print a single number denoting the required sum.

翻译中…

Note

翻译中…

Let's look at the example testcase.

翻译中…

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

翻译中…

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

翻译中…

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

翻译中…

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

翻译中…

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

翻译中…

样例

Input #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
Output #1
103
207
InputCopy OutputCopy
Input #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
Output #2
111
1002
InputCopy OutputCopy
题目信息
题号
794F
时间限制
2 s
内存限制
512 MB
标签
数据结构

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。