Codeforces Round 903 (Div. 3) |
---|
Закончено |
Даны строка $$$x$$$ длины $$$n$$$ и строка $$$s$$$ длины $$$m$$$ ($$$n \cdot m \le 25$$$), состоящие из строчных латинских букв. Вы можете применить любое количество операций к строке $$$x$$$.
За одну операцию вы приписываете текущее значение строки $$$x$$$ к концу $$$x$$$. Обратите внимание, что значение $$$x$$$ после этого изменится.
Например, если $$$x =$$$«aba», то при применении операций $$$x$$$ будет меняться следующим образом: «aba» $$$\rightarrow$$$ «abaaba» $$$\rightarrow$$$ «abaabaabaaba».
После какого минимального количества операций $$$s$$$ встретится в $$$x$$$ в качестве подстроки? Подстрокой строки называется любой её непрерывный отрезок.
В первой строке входных данных содержится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных в тесте.
Первая строка каждого набора содержит два числа $$$n$$$ и $$$m$$$ ($$$1 \le n \cdot m \le 25$$$) — длины строк $$$x$$$ и $$$s$$$ соответственно.
Вторая строка каждого набора содержит строку $$$x$$$ длины $$$n$$$.
Третья строка каждого набора содержит строку $$$s$$$ длины $$$m$$$.
Для каждого набора входных данных выведите одно число — минимальное количество операций, после которых $$$s$$$ встретится в $$$x$$$ в качестве подстроки. Если это невозможно, выведите $$$-1$$$.
121 5aaaaaa5 5eforcforce2 5abababa3 5abaababa4 3babbbbb5 1aaaaaa4 2aabbba2 8bkkbkbkbkb12 2fjdgmujlconttf2 2aaaa3 5abbbabba1 19mmmmmmmmmmmmmmmmmmmm
3 1 2 -1 1 0 1 3 1 0 2 5
В первом наборе входных данных примера, после $$$2$$$ применений операции строка станет равна «aaaa», а после $$$3$$$ «aaaaaaaa», так что ответ $$$3$$$.
Во втором наборе входных данных примера после применения $$$1$$$ операции строка станет равна «$$$\text{e}\color{red}{\text{force}}\text{forc}$$$», вхождение подстроки выделено красным.
В четвёртом наборе входных данных примера можно показать, что получить нужную строку как подстроку невозможно.
Название |
---|