Задача №114555. Конкатенация с пересечением

У Васи было три строки \(a\), \(b\) и \(s\), состоящие из строчных символов латинского алфавита. Длины строк \(a\) и \(b\) равны \(n\), длина строки \(s\) равна \(m\).

Вася решил вырезать некоторую подстроку строки \(a\), затем вырезать некоторую подстроку строки \(b\) и сконкатенировать их. Более формально, он выбирает некоторый отрезок \(1 \leq l_1 \leq r_1 \leq n\) и отрезок \(1 \leq l_2 \leq r_2 \leq n\), вырезает подстроки \(a[l_1, r_1] = \overline{a_{l_1} a_{l_1 + 1} \ldots a_{r_1}}\) и \(b[l_2, r_2] = \overline{b_{l_2} b_{l_2 + 1} \ldots b_{r_2}}\). Затем, он рассматривает строку \(a[l_1, r_1] + b[l_2, r_2] = \overline{a_{l_1} a_{l_1 + 1} \ldots a_{r_1} b_{l_2} b_{l_2 + 1} \ldots b_{r_2}}\).

Теперь Васю заинтересовал вопрос, сколькими способами он может выбрать так пару отрезков, что выполнены следующие условия:

  • отрезки \([l_1, r_1]\) и \([l_2, r_2]\) пересекаются, то есть существует хотя бы одно целое число \(x\), такое что \(l_1 \leq x \leq r_1\) и \(l_2 \leq x \leq r_2\);
  • полученная Васей в итоге строка \(a[l_1, r_1] + b[l_2, r_2]\) равна строке \(s\).

Помогите ему и посчитайте количество таких способов. Две пары отрезков считаются различными, если первые отрезки пар не совпадают или вторые отрезки пар не совпадают.

Входные данные

В первой строке заданы два целых числа \(n\) и \(m\) (\(1 \leq n \leq 500\,000, 2 \leq m \leq 2 \cdot n\)) — длина строк \(a\) и \(b\) и длина строки \(s\) соответственно.

Во второй строке задана строка \(a\) длины \(n\), состоящая из строчных букв латинского алфавита.

В третьей строке задана строка \(b\) длины \(n\), состоящая из строчных букв латинского алфавита.

В четвертой строке задана строка \(s\) длины \(m\), состоящая из строчных букв латинского алфавита.

Выходные данные

Выведите одно целое число — количество способов выбрать пару отрезков, удовлетворяющую Васиным условиям.

Примечание

Перечислим все пары отрезков, которые мог выбрать Вася в первом примере:

  1. \([2, 2]\) и \([2, 5]\);
  2. \([1, 2]\) и \([2, 4]\);
  3. \([5, 5]\) и \([2, 5]\);
  4. \([5, 6]\) и \([3, 5]\);

Пару отрезков \([5, 6]\) и \([2, 4]\) Вася выбрать не мог, потому что они не пересекаются. Пару отрезков \([2, 3]\) и \([3, 5]\) Вася выбрать не мог, потому что \(a[2, 3] + b[3, 5] = \overline{abaaa} \neq s\).

Система оценки

Тесты к этой задаче состоят из семи групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов необходимых групп. Offline-проверка означает, что результаты тестирования вашего решения на данной группе станут доступны только после окончания соревнования.

Группа Баллы Дополнительные ограничения Необх. группы Комментарий
0 0 Тесты из условия.
1 9 \(n \leq 20\) 0
2 10 \(n \leq 100\) 0, 1
3 12 \(n \leq 500\) 0, 1, 2
4 20 \(n \leq 5\,000\) 0, 1, 2, 3
5 10 \(n \leq 100\,000\) 0, 1, 2, 3, 4
6 17 \(m \leq 100\) 0, 1
7 12 Все символы s равны.
8 10 0 – 7 Offline-проверка.
Примеры
Входные данные
6 5
aabbaa
baaaab
aaaaa
Выходные данные
4
Входные данные
5 4
azaza
zazaz
azaz
Выходные данные
11
Входные данные
9 12
abcabcabc
xyzxyzxyz
abcabcayzxyz
Выходные данные
2
Сдать: для сдачи задач необходимо войти в систему