#P14876. [OOI2023预选赛]Mushroom Pairs蘑菇数对

[OOI2023预选赛]Mushroom Pairs蘑菇数对

题目描述

给定一个长度为 nn 的数组 aa。有 mm 个询问,每个询问给出两个数 xi,yix_i,y_i

对一个位置 jj,定义:

  • lcnt(j,x)\operatorname{lcnt}(j,x):数组 aa 的前缀 1..j1..j 中,数 xx 出现的次数;
  • rcnt(j,x)\operatorname{rcnt}(j,x):数组 aa 的后缀 j..nj..n 中,数 xx 出现的次数;
  • $f(i,x,y)=\operatorname{lcnt}(i-1,x)\cdot \operatorname{rcnt}(i,y)$。

对于每个询问 (xi,yi)(x_i,y_i),你需要在所有 j=2,3,,nj=2,3,\dots,n 中最大化 f(j,xi,yi)f(j,x_i,y_i),并输出这个最大值。

输入格式

第一行包含两个整数 n,mn,m,表示数组长度和询问数量。

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

接下来 mm 行,每行包含两个整数 xi,yix_i,y_i,表示一个询问。保证 xix_iyiy_i 都在数组中出现过。

输出格式

输出 mm 行,每行一个整数,表示对应询问的答案。

数据范围

2n1000002 \le n \le 1000001m1000001 \le m \le 1000001ai,xi,yi1091 \le a_i,x_i,y_i \le 10^9

样例

样例 1

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

样例 2

5 4
1 1 1 2 2
1 1
1 2
2 2
2 1
2
6
1
0

样例解释

样例 1 中,第一个询问为 (1,2)(1,2)

  • f(2,1,2)=2f(2,1,2)=2
  • f(3,1,2)=1f(3,1,2)=1
  • f(4,1,2)=1f(4,1,2)=1
  • f(5,1,2)=0f(5,1,2)=0

所以答案为 22

第二个询问为 (2,2)(2,2)

  • f(2,2,2)=0f(2,2,2)=0
  • f(3,2,2)=1f(3,2,2)=1
  • f(4,2,2)=1f(4,2,2)=1
  • f(5,2,2)=0f(5,2,2)=0

所以答案为 11。第三个询问与第一个相同,答案仍为 22

子任务

组别 分数 附加限制 依赖 备注
0 样例 -
1 14 n,m100n,m \le 100 0
2 19 n,m5000n,m \le 5000 0,1
3 22 ai1000a_i \le 1000 -
4 12 所有询问满足 xi=yix_i=y_i
5 33 无额外限制 0--4 Offline 检查