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

Спасение Энтерпрайза

Спасение Энтерпрайза

Звездолет Энтерпрайз окружен Клингонами! Найдите самый быстрый путь эвакуации и выведите его время.

На вход подается прямоугольная сетка, каждая ячейка которой содержит либо Энтерпрайз, либо военный корабль Клингонов некоторого типа. С каждым типом кораблей Клингонов связано время, за которое Энтерпрайз может его победить. Для спасения Энтерпрайз должен победить каждый корабль Клингонов на некотором пути к границе сетки. Ячейки считаются соседними, если у них общее ребро, но не угол (то есть четыре соседа).

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

Первая строка содержит количество тестов t (2t100). Каждый тест начинается со строки, содержащей три числа k, w и h. Число k (1k25) - количество различных типов военных кораблей Клингонов. Число w (2w1000) - ширина сетки. Значение h (1h1000) - высота сетки.

Каждая из следующих k строк содержит заглавную латинскую букву - тип корабля Клингонов и время, необходимое Энтерпрайзу победить его. Тип корабля не может быть "E". Время задается в минутах и лежит между 0 и 100000 включительно. Все строки содержат различные типы.

Каждая из следующих h строк содержит w заглавных букв (без пробелов между ними). Среди всех h строк присутствует только одна буква "E", указывающая на местоположение Энтерпрайза; все остальные заглавные буквы - одни из k перечисленных выше, указывающих на тип военного корабля Клингонов в заданной точке.

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

Выведите одно целое число - время, достаточное для спасения корабля.

Ліміт часу 4 секунди
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
2
6 3 3
A 1
B 2
C 3
D 4
F 5
G 6
ABC
FEC
DBG
2 6 3
A 100
B 1000
BBBBBB
AAAAEB
BBBBBB
Вихідні дані #1
2
400
Джерело 2013 North America - Pacific Northwest Region Programming Contest, Задача E