Олимпиадный тренинг

Задача . Mana Collection


Задача

Темы:

**Замечание: Время на тест для этой задачи 5s, в 2.5 больше чем по умолчанию. Ограничение по памяти в этой задаче 512MB, в два раза больше чем по умолчанию.**

У Беси есть \(N\) (\(1\le N\le 18\)) бассейнов маны, \(i\)-ый из которых аккумулирует \(m_i\) маны в секунду (\(1\le m_i\le 10^8\)). Бассейны соединены набором \(M\) (\(0\le M\le N(N-1)\)) двунаправленных ребер \((a_i,b_i,t_i)\), обозначающих, что из бассейна \(a_i\) она может перебраться в бассейн \(b_i\) за \(t_i\) секунд (\(1\le a_i, b_i\le N\), \(a_i\neq b_i\), \(1\le t_i\le 10^9\)). Когда Беси находится в бассейне, она может собрать все маны, сохранённые в этом бассейне, опустошая его. В момент времени \(0\) все бассейны с маной пусты. Беси может выбрать с какого бассейна стартовать.

Ответьте на \(Q\) (\(1\le Q\le 2\cdot 10^5\)) запросов, каждый указан двумя целыми числами \(s\) и \(e\) (\(1\le s\le 10^9\), \(1\le e\le N\)). Для каждого запроса определите максимальное количество маны, которую Беси может собрать за \(s\) секунд, оказавшись в бассейне \(e\) в конце \(s\)-ой секунды.

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит \(N\) и \(M\).

Следующая строка содержит \(m_1,m_2,\dots, m_N\).

Следующие \(M\) строк содержат \(a_i,b_i,t_i\). Никакая упорядоченная пара (ai,bi)$ не появится на вводе более одного раза.

Следующая строка содержит \(Q\).

Следующие \(Q\) содержат по два целых числа \(s\) и \(e\).

ФОРМАТ ВЫВОДА (на экран / stdout):

\(Q\) строк, по одной для каждого запроса


Примеры
Входные данныеВыходные данные
1 2 1
1 10
1 2 10
4
5 1
5 2
100 1
100 2
5
50
100
1090

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя