EduBrick

M. Пары равных

1000 мс · 256 МБ · всё или ничего

Дан массив. На каждый запрос (l,r)(l, r) нужно сказать, сколько пар индексов i<ji < j внутри отрезка дают ai=aja_i = a_j.

Если значение vv встречается на отрезке cvc_v раз, оно даёт (cv2)\binom{c_v}{2} пар. Ответ - сумма по всем значениям. Пересчитывать сумму целиком на каждый шаг нельзя, но её можно поддерживать разностно.

Формат ввода

В первой строке - число nn (1≤n≤1051 \le n \le 10^5).

Во второй строке - nn чисел aia_i (1≤ai≤1061 \le a_i \le 10^6).

В третьей строке - число запросов qq (1≤q≤1051 \le q \le 10^5).

В следующих qq строках - пары ll и rr (1≤l≤r≤n1 \le l \le r \le n).

Формат вывода

Для каждого запроса выведите количество пар равных элементов на отрезке.

Примеры

ввод
5
1 1 2 1 2
3
1 5
2 4
3 3
вывод
4
1
0
ввод
6
7 7 7 7 7 7
2
1 6
2 5
вывод
15
6
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.