Странный вычислитель Имя входного файла: input.txt
Имя выходного файла: output.txt
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Маленькая девочка Лиза нашла странный автомат для счета. Он состоит из клеток, которые
соединены друг с другом проводками, концы которых помечены символами − и +. В каждой клетке
автомата написано либо число, либо операция, либо переменная. В инструкции к автомату она
прочитала, что данные передаются по проводкам от клетки с минусом к клетке с плюсом. В этом
случае будем говорить, что клетка с плюсом зависит от клетки с минусом.
Работает устройство следующим образом:
• результатом вычисления в клетке, которая не помечена ни одним плюсом, является значение,
записанное в неё;
• для всех клеток устройства, сначала вычисляются значения в клетках, от которых зависит
результат вычисления в этой клетке, после чего выполняется операция последовательно для
всех входных данных;
• результат, полученный в клетке с номером 1, является итоговым.
Если в клетке записана операция, то результат ее вычисления зависит от результата не менее
двух других клеток. Если в клетке записана переменная или константа, то она не зависит от результата других клеток. Гарантируется, что существует не более одной клетки с переменной и для
любой клетки с умножением существует не более одной цепочки зависимостей из клетки с переменной. Вычисление всегда завершается.
Лиза решила убедиться в корректности работы вычислителя. Для этого она написала набор
чисел — значений x. Для каждого из этих значений она хочет узнать результат, который должно
выдать устройство ей с проверкой.
Формат входных данных
В первой строке входного файла записаны три числа N, M, и Q — количество клеток, количество
зависимостей и количество значений переменной (1 ⩽ N, M, Q ⩽ 105
).
Во второй строке записаны N выражений в порядке, соответствующем номерам клеток, в которых эти выражения записаны:
• + означает, что результат в соответствующей клетке равен сумме значений от которых эта
клетка зависит;
• ∗ означает, что результат в соответствующей клетке равен произведению значений в клетках,
от которых данная клетка зависит;
• x означает, что в данной клетке записывается переменная;
• val означает, что в соответствующей клетке записана константа val (1 ⩽ val ⩽ 109 + 8).
В следующих M строках записано по два числа u и v — зависимость клетки v от значения в
клетке u (1 ⩽ u, v ⩽ N, u ̸= v).
В следующих Q строках записаны значения переменной x (0 ⩽ x ⩽ 109 + 8).
Формат выходных данных
В выходной файл выведите Q строк, в каждой из которых по одному числу — результат, полученный на вычислителе для очередного значения x. Так как результат может быть большим,
выведите остаток от деления на 109 + 9.