phrase, приписывая к изначально пустой строке готовые куски. Кусок pieces[i] стоит prices[i], и каждый кусок можно использовать сколько угодно раз (или ни разу). Добавлять кусок можно только в конец уже напечатанного.
Верните наименьшую суммарную стоимость, за которую получается ровно phrase. Если собрать phrase нельзя, верните -1.phrase='moonlight', pieces=['moon', 'light', 'moonl', 'ight', 'mo', 'on'], prices=[8, 5, 3, 4, 2, 2] → 7
moonl + ight стоит 3 + 4 = 7. Вариант mo + on + light стоит 9, а moon + light — 13.
phrase='abab', pieces=['ab', 'b', 'aba'], prices=[3, 1, 1] → 2
Подходят ab + ab (6) и aba + b (2) — берём дешёвый вариант. Один и тот же кусок можно брать несколько раз.
phrase='xyz', pieces=['xy', 'yz'], prices=[1, 1] → -1
phrase и куски состоят из строчных латинских буквphrase='moonlight', pieces=['moon', 'light', 'moonl', 'ight', 'mo', 'on'], prices=[8, 5, 3, 4, 2, 2]
7
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 125 тестов на сервере, включая скрытые.