atcoder#ABC293G. [ABC293G] Triple Index

[ABC293G] Triple Index

题目描述

長さ N N の正整数列 (A1, A2, , AN) (A_1,\ A_2,\ \ldots,\ A_N) と、この数列に関する Q Q 個のクエリが与えられます。

q = 1, 2, , Q q\ =\ 1,\ 2,\ \ldots,\ Q のそれぞれについて、q q 番目のクエリでは整数の 2 2 つ組 (lq, rq) (l_q,\ r_q) が与えられるので、
下記の 2 2 つの条件をともに満たす整数の 3 3 つ組 (i, j, k) (i,\ j,\ k) の個数を出力してください。

  • lq  i < j < k  rq l_q\ \leq\ i\ \lt\ j\ \lt\ k\ \leq\ r_q
  • Ai = Aj = Ak A_i\ =\ A_j\ =\ A_k

输入格式

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

N N Q Q A1 A_1 A2 A_2 \ldots AN A_N l1 l_1 r1 r_1 l2 l_2 r2 r_2 \vdots lQ l_Q rQ r_Q

输出格式

Q Q 行出力せよ。 q = 1, 2, , Q q\ =\ 1,\ 2,\ \ldots,\ Q について、q q 行目には q q 番目のクエリに対する答えを出力せよ。

题目大意

给定长度为 NN 的数列 a1,a2,,aNa_1,a_2,\cdots,a_N

qq 组询问,每组询问给定 l,rl,r1lrn1\le l\le r \le n,问存在多少个三元组 (i,j,k)(i,j,k),使得 li<j<krl\le i < j<k\le rai=aj=aka_i=a_j=a_k

10 4
2 7 1 8 2 8 1 8 2 8
1 10
1 9
2 10
5 5
5
2
4
0
20 10
2 2 2 2 1 1 2 2 1 1 1 2 1 2 1 2 2 1 2 1
12 16
17 18
12 18
4 9
13 13
2 5
6 13
2 14
7 14
8 12
1
0
5
2
0
1
11
55
8
1

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • 1  Ai  2 × 105 1\ \leq\ A_i\ \leq\ 2\ \times\ 10^5
  • 1  lq  rq  N 1\ \leq\ l_q\ \leq\ r_q\ \leq\ N
  • 入力はすべて整数

Sample Explanation 1

1 1 番目のクエリについて、問題文中の 2 2 つの条件をともに満たす整数の 3 3 つ組 (i, j, k) (i,\ j,\ k) は、 $ (1,\ 5,\ 9),\ (4,\ 6,\ 8),\ (4,\ 6,\ 10),\ (4,\ 8,\ 10),\ (6,\ 8,\ 10) $ の 5 5 個です。