Codeforces Round 788 (Div. 2) |
---|
Закончено |
Хоссам решил проникнуть в комнату Хемоса, пока он спит, и сменить пароль на его ноутбуке. Он уже знает исходный пароль, равный строке $$$s$$$ длины $$$n$$$. Он также знает, что существуют $$$k$$$ особых букв в алфавите: $$$c_1,c_2,\ldots, c_k$$$.
Хоссам написал программу, которая делает следующее.
Например, пусть строка $$$s$$$ равна «abcdef», а особые буквы — «b» и «d». Если Хоссам запустит программу один раз, символы на позициях $$$1$$$ и $$$3$$$ будут удалены, так как они находятся перед особыми символами, и пароль станет равным «bdef». Если он запустит программу еще раз, она удалит символ на позиции $$$1$$$, и пароль станет «def». Хоссам поступит разумно, если не будет запускать программу в третий раз.
Хоссам хочет узнать, сколько максимум раз он может запустить программу на ноутбуке Хемоса, не разбудив его сигналом ошибки. Можете помочь ему?
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных. Далее следуют $$$t$$$ наборов входных данных.
Первая строка каждого набора содержит одно целое число $$$n$$$ ($$$2 \le n \le 10^5$$$) — исходную длину пароля.
Следующая строка содержит строку $$$s$$$, состоящую из $$$n$$$ строчных букв латинского алфавита — исходный пароль.
Следующая строка содержит целое число $$$k$$$ ($$$1 \le k \le 26$$$), а затем $$$k$$$ различных строчных букв латинского алфавита $$$c_1,c_2,\ldots,c_k$$$ — особые буквы.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$.
Для каждого набора входных данных выведите максимальное количество раз, которое Хоссам может запустить программу, не вызвав ошибку.
109iloveslim1 s7joobeel2 o e7basiozi2 s i6khater1 r7abobeih6 a b e h i o5zondl5 a b c e f6shoman2 a h7shetwey2 h y5samez1 m6mouraz1 m
5 2 3 5 1 0 3 5 2 0
В первом наборе входных данных программу можно запустить $$$5$$$ раз: $$$\text{iloveslim} \to \text{ilovslim} \to \text{iloslim} \to \text{ilslim} \to \text{islim} \to \text{slim}$$$
Во втором наборе входных данных программу можно запустить $$$2$$$ раза: $$$\text{joobeel} \to \text{oel} \to \text{el}$$$
В третьем наборе входных данных программу можно запустить $$$3$$$ раза: $$$\text{basiozi} \to \text{bioi} \to \text{ii} \to \text{i}$$$.
В четвертом наборе входных данных программу можно запустить $$$5$$$ раз: $$$\text{khater} \to \text{khatr} \to \text{khar} \to \text{khr} \to \text{kr} \to \text{r}$$$
В пятом наборе входных данных программу можно запустить только раз: $$$\text{abobeih} \to \text{h}$$$
В шестом наборе программу нельзя запустить ни разу, так как пароль не содержит особых символов.
Название |
---|