#aBC343F. [ABC343F] Second Largest Query

[ABC343F] Second Largest Query

AT_abc343_f [ABC343F] Second Largest Query

题目描述

给定一个长度为 NN 的数列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)

QQ 个查询,请按给定顺序依次处理。每个查询有以下两种类型之一:

  • 类型 11:以 1 p x 的形式给出。将 ApA_p 的值修改为 xx
  • 类型 22:以 2 l r 的形式给出。输出区间 (Al,Al+1,,Ar)(A_l, A_{l+1}, \ldots, A_r) 中第 22 大值的个数。更严格地说,输出满足 lirl \leq i \leq r,且在 Al,Al+1,,ArA_l, A_{l+1}, \ldots, A_r 中,恰好有 11 种比 AiA_i 大的值的整数 ii 的个数。

输入格式

输入按以下格式从标准输入读入。

NN QQ A1A_1 A2A_2 \ldots ANA_N query1\text{query}_{1}
\vdots
queryQ\text{query}_{Q}

其中,queryi\text{query}_i 表示第 ii 个查询,格式如下之一:

11 pp xx

22 ll rr

输出格式

设类型 22 的查询有 qq 个,请输出 qq 行。第 ii 行输出第 ii 个类型 22 查询的答案。

输入输出样例 #1

输入 #1

5 4
3 3 1 4 5
2 1 3
2 5 5
1 3 3
2 2 4

输出 #1

1
0
2

输入输出样例 #2

输入 #2

1 1
1000000000
2 1 1

输出 #2

0

输入输出样例 #3

输入 #3

8 9
2 4 4 3 9 1 1 2
1 5 4
2 7 7
2 2 6
1 4 4
2 2 5
2 2 7
1 1 1
1 8 1
2 1 8

输出 #3

0
1
0
2
4

说明/提示

限制条件

  • 1N,Q2×1051 \leq N, Q \leq 2 \times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 对于类型 11 查询,1pN1 \leq p \leq N
  • 对于类型 11 查询,1x1091 \leq x \leq 10^9
  • 对于类型 22 查询,1lrN1 \leq l \leq r \leq N
  • 至少存在一个类型 22 查询
  • 输入的所有值均为整数

样例解释 1

初始时,A=(3,3,1,4,5)A = (3, 3, 1, 4, 5)。第 11 个查询中,区间 (3,3,1)(3, 3, 1) 的第 22 大值为 11,在 3,3,13, 3, 111 出现了 11 次,因此输出 11。第 22 个查询中,区间 (5)(5) 没有第 22 大值,输出 00。第 33 个查询后,A=(3,3,3,4,5)A = (3, 3, 3, 4, 5)。第 44 个查询中,区间 (3,3,4)(3, 3, 4) 的第 22 大值为 33,在 3,3,43, 3, 433 出现了 22 次,因此输出 22

由 ChatGPT 4.1 翻译