Решение предполагалось следующее: во первых, если длины строк не совпадали, то ответ очевидно -1. В противном случае для каждой позиции переберём букву, которую будем на нее ставить. Чтобы быстро узнать, в какую стоимость эта операция нам обойдется предподсчитаем матрицу размера Z[26][26], где в клетке (i, j) будет записана минимальная цена перехода из i-ой буквы алфавита в j-ую. Для этого воспользуемся, например, алгоритмом Флойда. Если по причине отсутствия переходов в какой то позиции в строке мы не найдем хотя бы одной подходящей буквы, то выводим -1. Иначе суммируем ответ, и выводим получившуюся строку.
Thanks alot :)..
Char array is faster than the C++ string, so I suggest you to use it when you can.
Если 10^7, то все проходит...
Может кто-нибудь объяснить в чем трабл? Вроде за пределы инта не выходит...
http://pastebin.com/690Re1Rf
Подскажите почему при INF == 10^9 вылетает 10 тест)
стыдно(
вопрос снят, учусь писать флойда)