#DS1008. 树状数组二分

树状数组二分

题目描述

你有一排箩筐,长度为 nn,初始的时候从左到右各个筐分别有 AiA_i 个球。

你需要处理两种操作:

  • 1 p x 将第 pp 个筐的球数修改为 xx
  • 2 v 求出从左到右第 vv 个球在哪个筐,如果不存在,输出 -1

输入格式

第一行两个整数 n,mn,m,代表数组长度和操作次数。

第二行 nn 个数依次代表 AiA_i

接下来 mm 行每行 2,32,3 个数字,具体作用见题目描述。

输出格式

对每次 22 操作,输出一行表示结果。

8 6
1 3 5 7 9 2 4 6
1 1 8
1 3 7
2 10
2 20
2 100
2 1
2
4
-1
1
8 5
1 0 1 0 1 0 1 0
2 1
2 2
2 3
2 4
2 5
1
3
5
7
-1

测试数据范围

1n,m2000001≤n,m≤2000001pn1≤p≤n1x1091≤x≤10^91v10141≤v≤10^{14}