• Предмет: Информатика
  • Автор: PolinaChistyakova
  • Вопрос задан 5 месяцев назад

Задача на python
Условия

Анжелика Ивановна на первом уроке информатики решила устроить ребятам информатический баттл. В классе учатся n ребят.

Известно, что в этом баттле могут участвовать только два человека, причём рейтинг которых на одной популярной платформе совпадает. Но каждый из ребят может побороться и с самим собой! Рейтинг каждого ученика обозначается числом ai, где i - номер человека в журнале.

Теперь Анжелика Ивановна q раз случайно(нет) хочет узнать количество различных способов выбрать двух учеников (каждый ученик может побороться сам с собой, в этом случае его следует рассматривать как двух ребят с одинаковым рейтингом) на баттл таким образом, что их номера в журнале лежат на отрезке с li по ri, где i - номер очередного запроса учителя. Однако не всё так просто! Реальный запрос для всех i ≥ 2 определяется следующей формулой: l = (li + ansi−1)%n + 1, r = (ri + ansi−1)%n + 1, где ansi−1 - ответ на предыдущий запрос. Заметьте, что в результате такой операции может случиться так, что l > r, в этом случае их следует поменять местами. В случае же если i = 1, реальный запрос будет l = l1, r = r1.


Формат входных данных
Первая строка содержит одно целое число n (1 ≤ n ≤ 2 ·105).
Вторая строка набора содержит n целых чисел a1, a2, ..., an - рейтинги учеников на популярной платформе, 1 ≤ ai ≤ 109, где i - номер человека в журнале, 1 ≤ i ≤ n.
Третья строка состоит из одного целого числа q (1 ≤ q ≤ 105) - количество запросов от Анжелики Ивановны.
В следующих q строках входных данных описываются запросы. В каждой строке находятся два целых числа li,ri - границы отрезка номеров в журнале, среди которых можно выбирать учеников на баттл (1 ≤ li ≤ ri ≤ n). Не забудьте, что в реальном запросе может случиться так, что l > r.

Формат выходных данных
На каждый из q запросов выведите целое положительное число - количество различных способов выбрать двух учеников на баттл. Напомним, что ученик может побороться сам с собой.

Примеры
Входные данные:
3
2 2 3
3
1 3
1 1
1 2
Выходные данные:
4
1
4
Входные данные:
5
6 8 8 9 8
6
1 5
2 5
1 3
2 5
2 3
1 5
Выходные данные:
8
5
4
7
8
2

Ответы

Ответ дал: vasya2020p
1

Ответ:

All Cups:Технокубок 2022/2023

Объяснение:

Вы будете сняты с соревнования за нарушение правил 'Технокубок 2022/2023' , c уважением © All Cups — проект VK. v3.32.23 / You will be removed from the competition for violating the rules of 'Technocup 2022/2023' , best regards © All Cups — VK project. v3.32.23

Вас заинтересует