Educational Codeforces Round 30 |
---|
Закончено |
Дана строка s, состоящая из n строчных латинских букв. Некоторые индексы в этой строке являются запрещёнными.
Вам необходимо найти такую строку a, что значение |a|·f(a) является максимально возможным, где f(a) — количество вхождений a в s, заканчивающихся в индексах, не являющихся запрещёнными. Например, если s — aaaa, a — aa и индекс 3 — запрещённый, то f(a) = 2, так как a встречается в s три раза (начиная с индексов 1, 2 и 3), но одно из этих вхождений (то, которое начинается в индексе 2) заканчивается в запрещённом индексе.
Посчитайте максимально возможное значение |a|·f(a).
В первой строке записано целое число n (1 ≤ n ≤ 200000) — длина строки s.
Во второй строке записана s — строка из n строчных латинских букв.
В третьей строке записана строка t, состоящая из n символов 0 и 1. Если i-й символ в t — 1, то i является запрещённым индексом (иначе i не запрещён).
Выведите максимально возможное значение |a|·f(a).
5
ababa
00100
5
5
ababa
00000
6
5
ababa
11111
0
Название |
---|