#9940. 【模板】线段树_第一个大于 K 的数
【模板】线段树_第一个大于 K 的数
题目描述
给定一个长度为 的数列 ,你需要处理 次操作。操作分为两种:
- 修改:将 的值改为 。
- 查询:给定一个区间 和一个整数 ,请你找出在区间 内,第一个大于 的数的位置(即最小的下标 满足 且 )。如果区间内不存在这样的数,请输出 。
输入格式
第一行包含两个整数 ,分别表示数列长度和操作次数。
第二行包含 个整数,表示初始数列 。
接下来 行,每行描述一个操作,格式如下:
1 x v:表示将 修改为 。2 l r k:表示查询区间 内第一个大于 的数的位置。
输出格式
对于每个查询操作,输出一行一个整数,表示第一个大于 的数的位置;若不存在则输出 。
样例
5 5
3 1 4 1 5
2 1 5 2
1 3 2
2 1 5 2
1 2 6
2 2 4 3
1
1
2
数据范围与提示
- 对于 的数据:,,,。
- 保证所有数值在 C++
int范围内