eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Потенциал строки

Потенциал строки

Задана строка \textbf{s}, состоящая из \textbf{k} первых маленьких букв латинского алфавита. Как и в \href{/problems/2158}{предыдущей задаче}, расстоянием между двумя символами этой строки \textbf{s_i}, \textbf{s_j} будем считать разницу между их позициями, то есть \textbf{|j−i|}. Определим потенциал этой строки следующим образом. Пусть известна функция \textbf{f(c_1,c_2)}, которая каждой паре букв ставит в соответствие некоторый вес. Эта функция является симметричной относительно своих аргументов, то есть \textbf{f(c_1,c_2) = f(c_2,c_1)}. Потенциалом между парой символов \textbf{s_i} и \textbf{s_j} строки \textbf{s} назовем произведение их весовой функции на расстояние между ними. Потенциал строки будет тогда вычисляться как суммарный потенциал между всеми парами символов. Напишите программу, определяющую потенциал заданной строки \textbf{s}. \InputFile В первой строке входного файла записано целое число \textbf{k} (\textbf{1} ≤ \textbf{k} ≤ \textbf{26}), количество первых букв латинского алфавита, которые могут быть в строке. Во второй строке задается строка \textbf{s}. Ее длина не превышает \textbf{10^6}. В последующих \textbf{k} строках задается весовая функция, \textbf{i}-ая из них содержит \textbf{i} чисел, \textbf{j}-ое из которых означает величину веса для \textbf{i}-ой и \textbf{j}-ой в порядке алфавита латинской буквы. Все веса не превосходят \textbf{10^6} по абсолютной величине. \OutputFile В выходной файл необходимо вывести одно число -- потенциал строки \textbf{s}.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3
abcacba
1
0 1
1 0 1
Выходные данные #1
32
Источник International Collegiate Programming Contest, Ukraine, Quarter-Final,May 19, 2011