#abc242g. [abc242_g]Range Pairing Query

[abc242_g]Range Pairing Query

题目描述

NN 个人按顺序编号为 1,2,dots,N1,2,\\dots,N。第 ii 个人穿着颜色 AiA_i

回答以下格式的 QQ 个查询。

  • 给定整数 llrr。只考虑第 l,l+1,dots,rl,l+1,\\dots,r 个人,最多可以形成多少对穿着相同颜色的人?

约束条件

  • 输入中的所有值均为整数。
  • 1leNle1051 \\le N \\le 10^5
  • 1leQle1061 \\le Q \\le 10^6
  • 1leAileN1 \\le A_i \\le N
  • 在每个查询中,1lellerleN1 \\le l \\le r \\le N

输入

从标准输入读入数据,输入格式如下:

NN A1A_1 A2A_2 dots\\dots ANA_N QQ mathrmQuery1\\mathrm{Query}_1 mathrmQuery2\\mathrm{Query}_2 vdots\\vdots mathrmQueryQ\\mathrm{Query}_Q

这里,mathrmQueryi\\mathrm{Query}_i 表示第 ii 个查询。

每个查询的格式如下:

ll rr

输出

打印 QQ 行。第 ii 行应包含第 ii 个查询的答案作为整数。由于输入和输出可能非常大,建议使用快速的输入和输出方法。


示例输入1

10
1 2 3 2 3 1 3 1 2 3
6
6 10
5 8
3 6
4 4
1 6
1 10

示例输出1

2
2
1
0
3
4

我们有 A=(1,2,3,2,3,1,3,1,2,3)A=(1,2,3,2,3,1,3,1,2,3)。此输入包含六个查询。

第一个查询是 (l,r)=(6,10)(l, r) = (6, 10)。通过配对第 6,86, 8 个人,以及第 7,107, 10 个人,我们可以形成两对穿着相同颜色的人。

第二个查询是 (l,r)=(5,8)(l, r) = (5, 8)。通过配对第 5,75, 7 个人,以及第 6,86, 8 个人,我们可以形成两对穿着相同颜色的人。

可能会有 l=rl=r 的查询。