Подводная лодка легла на грунт на мелководье. Для её обнаружения используются данные спутника, который с высокой точностью измеряет отклонение высоты поверхности воды от среднего уровня моря. Снимок, получаемый со спутника, представляет собой массив из \(h\) строк по w элементов в каждой строке.
• «корпус» — полоса из элементов с координатами от \((x_1, y_1)\) до \((x_2, y_1)\), где \(x_1 \lt x_2\);
• «рубка» — полоса из элементов с координатами от \((x_3, y_1)\) до \((x_3, y_2)\), где \(x_1 \le x_3 \lt x_2; y_1 \le y_2\);
• «хвост» — полоса из элементов с координатами от \((x_4, y_3)\) до \((x_4, y_4)\), где \(x_3 \lt x_4 \le x_2; y_3 \le y_1 \le y_4\). Поскольку подводная лодка находится вблизи поверхности в районе с сильным течением, уровень воды над ней немного повышается. Поэтому изображением подводной лодки на снимке будем считать потенциальное изображение с максимально возможной суммой входящих в него элементов массива.
Требуется написать программу, которая находит на снимке изображение подводной лодки и выводит сумму его элементов.
Для сжатия передаваемых со спутника данных каждый элемент снимка кодируется строчной буквой английского алфавита. Первая строка входных данных содержит число \(k\) — количество использованных для кодирования букв (\(k \le 26\)). Вторая строка входных данных содержит \(k\) целых чисел \(c_i\) — значения отклонений соответствующих каждому кодовому символу по порядку букв в английском алфавите от 1 до \(k\)-й.
Третья строка входных данных содержит числа \(h\) и \(w\) — размеры снимка. Последующие \(h\) строк содержат по \(w\) символов — кодовые значения элементов снимка.
Выходные данные должны содержать единственное целое число — сумму элементов массива, соответствующих изображению подводной лодки.
Для примера ниже приведены несколько потенциальных изображений подводной лодки.
3 -4 -3 4 5 5 bbabc ccaac accba baccb baaaa
16
3 -2 4 0 5 5 abccb cccac cbcba cccbb accba
24
4 -1 -5 -3 0 5 5 bbabc ccaac acdba baccb baaaa
-2
Улицу Подводный канал освещают \(n\) фонарей, пронумерованных вдоль улицы от 1 до \(n\). Один или несколько подряд стоящих фонарей назовём сегментом. Таким образом, общее количество сегментов равно \(n(n+1)/2\) . Сегмент считается исправным, если лампочки во всех фонарях этого сегмента исправны.
С фонарями регулярно происходят события одного из двух типов:
• в каком-то сегменте из-за скачков напряжения все лампочки одновременно перегорают;
• Архиэнерго выбирает некоторый сегмент и посылает ремонтников, чтобы заменить на нем все перегоревшие лампочки на исправные.
После каждого события мэрия города требует от Архиэнерго предоставить отчёт о количестве исправных сегментов. Для улучшения показателей работы ремонтники включают в отчёт все сегменты, которые исправны сейчас или были исправны когда-либо ранее.
Требуется написать программу, определяющую количество сегментов после каждого события, которые исправны в этот момент или были исправны когда-либо до этого события.
В первой строке входных данных содержатся два числа \(n\) и \(q\) — количество фонарей и количество произошедших событий. Следующая строка входных данных состоит из \(n\) символов 0 и 1, описывающих начальное состояние фонарей, где 1 обозначает фонарь с исправной лампочкой, а 0 — с перегоревшей.
В каждой из последующих q строк содержатся описания событий в виде трёх чисел \(l_i\) , \(r_i\) и \(c_i\) , которые означают, что после этого события все лампочки в фонарях с номерами \(l_i\) , \(l_i\) + 1, . . . , \(r_i\) :
• перегорают при \(c_i\) = 0,
• становятся исправными при \(c_i\) = 1.
В описаниях всех событий \(1 \le l_i \le r_i \le n\), а \(c_i\) принимает значение 0 или 1.
В первой строке выходных данных выведите единственное число — количество исправных сегментов в начальном состоянии. Затем по одному в строке выведите \(q\) чисел: для каждого из произошедших событий выведите количество сегментов, указываемых в отчёте после этого события.
7 4 1100101 4 6 1 3 6 0 3 4 1 5 7 1
5 13 13 19 28
Подземный бункер состоит из \(n\) комнат, соединённых \(n − 1\) коридорами. Каждый коридор соединяет две различные комнаты и имеет определённую длину. Бункер устроен таким образом, что из любой комнаты \(i\) можно дойти в любую другую комнату \(j\). Заметим, что существует единственный такой путь, не проходящий по одному и тому же коридору дважды. Сумма длин коридоров, составляющих этот путь, называется расстоянием между комнатами \(i\) и \(j\) и обозначается \(ρ(i, j)\).
Каждая комната бункера оборудована звуковой сигнализацией, состоящей из сирены и датчика звука, который её включает. Сирена, включённая в комнате \(i\), активирует датчик звука в каждой комнате, рас- стояние до которой не превосходит расстояние \(d_i\) , определяемое мощностью этой сирены. Другими словами, включение сирены в комнате \(i\) автоматически включает сирену во всех комнатах \(j\), таких что \(ρ(i, j) \le d_i\) . Эта сирена, в свою очередь, может вызвать автоматическое включение других сирен и так далее.
В случае возникновения чрезвычайной ситуации некоторые сирены необходимо включить вручную, после чего звук от них автоматически включит сирены в других комнатах. Правила безопасности предписывают выбор такого набора сирен для ручного включения, который в конце концов приведёт к автоматическому включению сирен во всех комнатах.
Требуется написать программу, которая определяет минимальное количество сирен в наборе, удовлетворяющем правилам безопасности.
Первая строка входных данных содержит единственное число \(n\) — количество комнат.
Вторая строка содержит последовательность из \(n\) целых чисел \(d_i\) , \(i\)-е из них равно максимальному расстоянию, на котором расположенная в комнате \(i\) сирена активирует датчики (\(0 \le d_i \le 10^9\) ).
Последующие n−1 строк описывают коридоры бункера. В \(i\)-й из них находятся три целых числа: \(u_i\) , \(v_i\) , \(l_i\) , где \(u_i\) , \(v_i\) — номера различных комнат, соединённых коридором \(i\), а \(l_i\) — длина этого коридора (\(1 \le u_i , v_i \le n; 1 \le l_i \le 10^9\) ).
Выходные данные должны состоять из единственного числа — минимального количества сирен, которые необходимо включить вручную.
В тесте из примера сирена в комнате 4 включает сирену в комнате 5, которая, в свою очередь, включает сирены в комнатах 6 и 7. Сирена в комнате 2 включает сирену в комнате 3. Сирена в комнате 8 включает сирены в комнатах 1, 9 и 10.
10 1 2 2 2 6 3 4 5 4 3 1 2 5 2 3 1 2 4 5 4 5 2 4 6 4 4 7 3 1 8 1 8 9 5 8 10 4
3