Обновления и точечные запросы

Просмотр в формате PDF

Submit solution


Очки: 130
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Problem type
Allowed languages
C++, Python

В системе хранится n показателей, и изначально все они равны нулю.

Далее к системе применяют m массовых надбавок. Каждая надбавка задаётся тремя числами l, r, v и означает, что ко всем показателям с номерами от l до r включительно нужно прибавить v.

После применения всех надбавок поступают q запросов. В каждом запросе требуется определить итоговое значение показателя в позиции i.

Необходимо для каждого запроса вывести значение в указанной точке после всех массовых обновлений.

Входные данные

Первая строка содержит два целых числа n и m — количество показателей и количество массовых надбавок.

В следующих m строках содержатся по три целых числа l, r, v — описание надбавки: ко всем позициям от l до r включительно прибавляется v.

После этого задано целое число q — количество запросов.

В следующих q строках содержится по одному целому числу i — позиция, значение в которой нужно вывести.

Выходные данные

Для каждого запроса выведите в отдельной строке одно целое число — итоговое значение показателя в позиции i.

Ограничения

  • 1 <= n, m <= 2 * 10^5
  • 1 <= q <= 2 * 10^5
  • 1 <= l <= r <= n
  • 1 <= i <= n
  • Все данные вводятся из стандартного ввода.
  • Ответ выводится в стандартный вывод.

Примеры

Пример 1

Входные данные

5 2
1 3 10
2 4 5
3
1
3
5

Выходные данные

10
15
0
Пример 2

Входные данные

3 3
1 3 5
1 1 3
3 3 7
4
1
3
1
1

Выходные данные

8
12
8
8

Комментарии

Еще нет ни одного комментария.