atcoder#ABC242G. [ABC242G] Range Pairing Query

[ABC242G] Range Pairing Query

配点 : 600600

問題文

1,2,,N1,2,\dots,N と番号付けられた人が並んでおり、人 ii は色 AiA_i の服を着ています。

以下の形式で表される QQ 個のクエリに答えてください。

  • 整数 l,rl,r が与えられる。 人 l,l+1,,rl,l+1,\dots,r だけに着目したとき、同じ色の服を着た 22 人からなるペアは最大何組作れるか答えよ。

制約

  • 入力は全て整数
  • 1N1051 \le N \le 10^5
  • 1Q1061 \le Q \le 10^6
  • 1AiN1 \le A_i \le N
  • 各クエリについて、 1lrN1 \le l \le r \le N

入力

入力は以下の形式で標準入力から与えられる。

NN

A1A_1 A2A_2 \dots ANA_N

QQ

Query1\mathrm{Query}_1

Query2\mathrm{Query}_2

\vdots

QueryQ\mathrm{Query}_Q

ただし、 Queryi\mathrm{Query}_iii 個目のクエリを表す。

各クエリは以下の形式で与えられる。

ll rr

出力

全体で QQ 行出力せよ。 ii 行目には ii 個目のクエリに対する答えを整数として出力せよ。 なお、入出力が大きくなる場合があるので、高速な方法で入出力を行うことを推奨する。

10
1 2 3 2 3 1 3 1 2 3
6
6 10
5 8
3 6
4 4
1 6
1 10
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) です。この入力には 66 個のクエリが含まれます。

11 個目のクエリは (l,r)=(6,10)(l, r) = (6, 10) です。人 66 と人 88 、人 77 と人 1010 を組にすることで、同じ色の服を着たペアを 22 組作ることができます。

22 個目のクエリは (l,r)=(5,8)(l, r) = (5, 8) です。人 55 と人 77 、人 66 と人 88 を組にすることで、同じ色の服を着たペアを 22 組作ることができます。

l=rl=r であるようなクエリも与えられます。