Префиксные суммы




Task
Time limit: 1000 ms,
Memory limit: 256 Mb

Банда Фомина состоит из n групп, в каждой из которых a_i человек. Планируется провести q рейдов. В i_ом рейде будет участвовать ровно один  разбойник из каждой группы, номер которой лежит в отрезке [l_i, r_i].
Мелехов тоскует, поэтому для каждого рейда он решил посчитать кол-во возможных отрядов по модулю 10^9 + 7. Однако Григорий постоянно находиться в раздумьях о смысле жизни и поиске правды, поэтому он не может сконцентрироваться на расчетах и просит вас помочь.

Входные данные:
В первой строке дано число n (1 <= n <= 10^5) – кол-во групп в банде Фомина.
Во второй строке дано n натуральных чисел a_i (1 <= a_i <= 10^6) – кол-во человек в iой группе.
В третьей строке дано число q – кол-во рейдов.
Далее дано q строк, в каждой из которых дано два числа – l_i и r_i (1 <= l_i <= r_i <= n) – номера групп, участвующих в iом рейде.

Выходные данные:
Выведите q чисел, каждое в отдельной строке – ответ на задачу.

Ввод Вывод
6
1 3 7 1 4 100
3
1 3
3 4
2 6
21
7
8400

(c) Курбатов Е., 2018

Auto CHOOSE THE PROGRAMMING NECESSARY LANGUAGE!
Attach the program source file:
or enter the source code in the language:

Rules for designing programs and a list of errors during automatic task verification
           

Results: