{"code":"diffquery2","name":"Diff-Query (version 2)","description":"Cho dãy $A$ gồm $N$ phần tử là các số nguyên dương $A_1, A_2, ..., A_N$. Cho $Q$ thao tác, thao tác thứ $i$ sẽ có một trong hai loại như sau:\r\n+ $1$ $p_i$ $x_i$: Thay giá trị ở vị trí $p_i$ thành $x_i$ (tức gán $A_{p_i} = x_i$).\r\n+ $2$ $u_i$ $v_i$: Đếm số phần tử phân biệt và tính tổng các giá trị phân biệt trong đoạn từ $u_i$ tới $v_i$.\r\n\r\n**Yêu cầu**: Thực hiện tất cả $Q$ thao tác, và in ra $2$ kết quả của thao tác loại $2$.\r\n\r\n#### Input\r\n Gồm $Q+2$ dòng: \r\n+ Dòng thứ nhất gồm hai số nguyên dương $N, Q$.\r\n+ Dòng thứ hai gồm $N$ số nguyên dương $A_1, A_2, ..., A_N$ $(A_i \\leq 10^9)$.\r\n+ $Q$ dòng tiếp theo, với dòng thứ $i$: số đầu tiên trên dòng là $1$ hoặc $2$. Số $1$ theo sau bởi hai số nguyên dương $p_i$, và $x_i$ $(1 \\leq p_i\\leq N$, $1 \\leq x_i \\leq 10^9)$. Số $2$ theo sau bởi hai số nguyên dương $u_i$ và $v_i$ $(1 \\leq u_i \\leq v_i \\leq N)$. \r\n\r\n#### Output\r\n- Với thao tác loại $2$ có dạng $2$ $u$ $v$, in ra $2$ kết quả lần lượt là số phần tử phân biệt và tính tổng các giá trị phân biệt trong đoạn từ $u$ tới $v$.\r\n#### Scoring\r\n+ Subtask $1$ ($30\\%$ số điểm): $30$% số điểm có $N \\leq 2.10^3$, $Q \\leq 2.10^3$.\r\n+ Subtask $2$ ($30\\%$ số điểm): $N \\leq 5.10^4$, $Q \\leq 5.10^4$, chỉ có các thao tác loại $2$.\r\n+ Subtask $3$ ($40\\%$ số điểm):  $N \\leq 5.10^4$, $Q \\leq 5.10^4$.\r\n#### Example\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```sample\r\n         3 3\r\n        1 2 3\r\n        2 1 3\r\n        1 3 2\r\n        2 2 3 \r\n        ```\r\n    ???+ success \"Output\"\r\n        ```sample\r\n        3 6\r\n        1 2\r\n        ```","points":450.0,"partial":true,"time_limit":3.0,"memory_limit":262144,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}