#P15681. 分糖果

分糖果

题目描述

现有一个长度为 nn 的数列 a1,a2,,ana_1,a_2,\dots,a_nqq 个操作,操作共两种:

  1. 给定 x,yx,y,你需要将 axa_x 的值修改为 yy
  2. 给定 m,km,k,你需要求出:若现在一共有 mm 个篮子和 nn 个人,第 ii 个人会选择不同aia_i 个篮子并往这 aia_i 个篮子中各放 11 颗糖,恰好装有 kk 颗糖的篮子的数量的最大值。

输入格式

第一行包含三个整数 c,n,qc,n,q,其中 cc 表示测试点编号。样例满足 c=0c=0

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n

接下来 qq 行,第 ii 行包含三个整数,格式形如 1 x y1\ x\ y2 m k2\ m\ k,分别表示第一种操作和第二种操作。

输出格式

对于每个第二种操作,输出一行,包含一个整数表示答案。

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

提示

样例 1 解释

  • 进行第一个操作时,a={1,2,5}a=\{1,2,5\}m=5m=5k=2k=2;第 11 个人可以选择往第 11 个篮子中放 11 颗糖,第 22 个人可以选择往第 22 个篮子和第 33 个篮子中放 11 颗糖,第 33 个人只能选择往所有篮子中均放 11 颗糖,此时第 1,2,31,2,3 个篮子中均有恰好 22 颗糖,容易证明这样可以使装有恰好 22 颗糖的篮子的数量最大化。
  • 进行第三个操作时,a={1,2,3}a=\{1,2,3\}m=4m=4k=1k=1;第 11 个人可以选择往第 11 个篮子中放 11 颗糖,第 22 个人可以选择往第 11 个篮子和第 22 个篮子中放 11 颗糖,第 33 个人可以选择往第 1,3,41,3,4 个篮子中均放 11 颗糖,此时第 2,3,42,3,4 个篮子中均有恰好 11 颗糖,容易证明这样可以使装有恰好 11 颗糖的篮子的数量最大化。
  • 进行第四个操作时,a={1,2,3}a=\{1,2,3\}m=5m=5k=0k=0;第 11 个人可以选择往第 11 个篮子中放 11 颗糖,第 22 个人可以选择往第 11 个篮子和第 22 个篮子中放 11 颗糖,第 33 个人可以选择往第 1,2,31,2,3 个篮子中均放 11 颗糖,此时第 44 个篮子和第 55 个篮子中均有恰好 11 颗糖,容易证明这样可以使装有恰好 00 颗糖的篮子的数量最大化。

样例 2

candy/candy2.incandy/candy2.ans

该组样例满足测试点 44 的限制。

样例 3

candy/candy3.incandy/candy3.ans

该组样例满足测试点 99 的限制。

样例 4

candy/candy4.incandy/candy4.ans

该组样例满足测试点 1010 的限制。

样例 5

candy/candy5.incandy/candy5.ans

该组样例满足测试点 1515 的限制。

样例 6

candy/candy6.incandy/candy6.ans

该组样例满足测试点 1717 的限制。

样例 7

candy/candy7.incandy/candy7.ans

该组样例满足测试点 1818 的限制。

样例 8

candy/candy8.incandy/candy8.ans

该组样例满足测试点 2020 的限制。

数据范围

对于所有测试数据,保证:

  • 1n,q5×1051 \le n,q \le 5\times10^5
  • 1ai1061 \le a_i \le 10^6
  • 1xn1 \le x \le n1y1061 \le y \le 10^6
  • maxaim1012\max a_i \le m \le 10^{12}0kn0 \le k \le n

::cute-table{tuack}

测试点编号 n,qn,q\le 特殊性质
11 55 A
22 B
33 400400 BC
454\sim5
66 50005000 BC
77 B
88 C
99
1010 10510^5 BC
1111 B
1212 C
131413\sim14
1515 5×1055\times10^5 A
1616 BC
1717 B
1818 C
192019\sim20
  • 特殊性质 A:保证 m7m \le 7
  • 特殊性质 B:保证 m=1012m=10^{12}
  • 特殊性质 C:保证没有第一种操作。