CF1791F Range Update Point Query
Description
Given an array $ a_1, a_2, \dots, a_n $ , you need to handle a total of $ q $ updates and queries of two types:
- $ 1 $ $ l $ $ r $ — for each index $ i $ with $ l \leq i \leq r $ , update the value of $ a_i $ to the sum of the digits of $ a_i $ .
- $ 2 $ $ x $ — output $ a_x $ .
Input Format
The first line of the input contains an integer $ t $ ( $ 1 \leq t \leq 1000 $ ) — the number of testcases.
The first line of each test case contains two integers $ n $ and $ q $ ( $ 1 \le n, q \le 2 \cdot 10^5 $ ) — the size of the array and the number of queries, respectively.
The second line of each test case contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 10^9 $ ).
The next $ q $ lines of each test case are of two forms:
- $ 1 $ $ l $ $ r $ ( $ 1 \leq l \leq r \leq n $ ) — it means, for each index $ i $ with $ l \leq i \leq r $ , you should update the value of $ a_i $ to the sum of its digits.
- $ 2 $ $ x $ ( $ 1 \leq x \leq n $ ) — it means you should output $ a_x $ .
There is at least one query of the second type.
The sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .
The sum of $ q $ over all test cases does not exceed $ 2 \cdot 10^5 $ .
Output Format
For each test case, output the answers of queries of the second type, in the order they are given.
Explanation/Hint
In the first test case, the following process occurs:
- Initially, $ a = [1, 420, 69, 1434, 2023] $ .
- The operation is performed for $ l=2 $ , $ r=3 $ , yielding $ [1, \textcolor{red}{6}, \textcolor{red}{15}, 1434, 2023] $ .
- We are queried for $ x=2 $ , $ x=3 $ , and $ x=4 $ , and output $ 6 $ , $ 15 $ , and $ 1434 $ .
- The operation is performed for $ l=2 $ , $ r=5 $ , yielding $ [1, \textcolor{red}{6}, \textcolor{red}{6}, \textcolor{red}{12}, \textcolor{red}{7}] $ .
- We are queried for $ x=1 $ , $ x=3 $ , and $ x=5 $ , and output $ 1 $ , $ 6 $ , and $ 7 $ .