线段树上二分
题目描述
给n个数a1,a2,a3,…,an。
支持q个操作:
1 x d,修改ax=d。
2 l r d, 查询al,al+1,al+2,…,ar中大于等于d的第一个数的下标,如果不存在,输出−1。也就是说,求最小的i(l≤i≤r)满足ai≥d。
输入格式
第一行两个整数n,q(1≤n,q≤2×105)。
接下来一行n个整数a1,a2,…,an(1≤ai≤109)。
接下来q行,每行一个形如1 x d或者2 l r d的操作,保证$1\leq x\leq n, 1\leq l\leq r\leq n, 1\leq d\leq 10^9$。
输出格式
对于每个查询,输出一行,表示答案。
样例输入
5 5
1 2 3 4 5
2 4 5 5
1 5 1
2 1 5 3
1 3 2
2 1 3 3
样例输出
5
3
-1