#YHW1206. 操作查询

操作查询

题目描述

给定一个长度为 nn 的序列 aa ,以及 qq 次操作。操作分为以下两种:

  • 操作1:指令形式为 1 x y1\ x\ y ,表示将序列中第 xx 个数修改为 yy
  • 操作2:指令形式为 2 p2\ p ,表示查询序列中第一个不小于 pp 的数的位置。

输入格式

  • 第一行输入一个正整数 nn ,表示序列的长度。
  • 第二行输入 nn 个整数,表示序列 aa 的元素。
  • 第三行输入一个正整数 qq ,表示操作的次数。
  • 接下来 qq 行,对于操作 11 ,每行输入三个正整数,分别为操作类型 op=1op = 1 、修改位置 xx 以及修改值 yy ;对于操作 22 ,每行输入两个正整数,分别为操作类型 op=2op = 2 以及需要查询的数 pp

输出格式

对于每个操作 22 ,输出一个整数。若存在第一个不小于查询数 pp 的数,则输出其位置;若不存在,则输出 1-1

输入输出样例

输入

5
5 4 3 9 1
5
2 3
2 10
1 5 10
2 10
2 6

输出

1
-1
5
4

说明

  • 对于第一次操作,序列中第一个不小于 33 的数为 55 ,其位置为 11 ,所以输出 11
  • 对于第三次操作,由于序列中没有比 1010 大的数,故输出 1-1

数据范围

  • 30%的数据
    • 1n10001 \leq n \leq 1000
    • 1ai10001 \leq a_{i} \leq 1000
    • 1q10001 \leq q \leq 1000
    • 1xn1 \leq x \leq n
    • 1y,p10001 \leq y, p \leq 1000
  • 60%的数据
    • 1n500001 \leq n \leq 50000
    • 1ai1061 \leq a_{i} \leq 10^{6}
    • 1q500001 \leq q \leq 50000
    • 1xn1 \leq x \leq n
    • 1y,p1061 \leq y, p \leq 10^{6}
  • 100%的数据
    • 1n2×1051 \leq n \leq 2\times 10^{5}
    • 1ai1091 \leq a_{i} \leq 10^{9}
    • 1q2×1051 \leq q \leq 2\times 10^{5}
    • 1op21 \leq op \leq 2
    • 1xn1 \leq x \leq n
    • 1y,p1091 \leq y, p \leq 10^{9}