Good Bye 2024: 2025 is NEAR |
---|
Закончено |
У Коколи есть строка $$$t$$$ длины $$$m$$$, состоящая из строчных латинских букв, и он хотел бы разделить её на части. Он называет пару строк $$$(x, y)$$$ прекрасной тогда и только тогда, когда существует последовательность строк $$$a_1, a_2, \ldots, a_k$$$, такая, что:
У Коколи есть другая строка $$$s$$$ длины $$$n$$$, состоящая из строчных латинских букв. Теперь, для каждого $$$1 \leq i < n$$$, Коколи хочет, чтобы вы определили, является ли пара строк $$$(s_1s_2 \ldots s_i, \, s_{i+1}s_{i+2} \ldots s_n)$$$ прекрасной.
Обратите внимание: поскольку входные и выходные данные большие, вам, возможно, потребуется оптимизировать их для решения этой задачи.
Например, в C++ достаточно использовать следующие строки в начале функции main():
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr); std::cout.tie(nullptr);
}
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$T$$$ ($$$1 \leq T \leq 10^5$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$2 \leq n \leq m \leq 5 \cdot 10^6$$$) — длины строк $$$s$$$ и $$$t$$$.
Вторая строка каждого набора входных данных содержит строку $$$s$$$ длины $$$n$$$, состоящую только из строчных латинских букв.
Третья строка каждого набора входных данных содержит строку $$$t$$$ длины $$$m$$$, состоящую только из строчных латинских букв.
Гарантируется, что сумма $$$m$$$ по всем наборам входных данных не превосходит $$$10^7$$$.
Для каждого набора входных данных выведите бинарную строку $$$r$$$ длины $$$n - 1$$$: для каждого $$$1 \leq i < n$$$, если $$$i$$$-я пара красива, $$$r_i=\texttt{1}$$$; в противном случае, $$$r_i=\texttt{0}$$$. Не выводите пробелы.
73 5abaababa4 10czzzczzzzzczzz5 14dreamdredreamamamam5 18tcccctcctccccctccctcccc7 11abababcabababababc7 26aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa19 29bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
11 011 0010 0000 010100 111111 110010001100010011
В первом наборе входных данных, $$$s = \tt aba$$$, $$$t = \tt ababa$$$.
Во втором наборе входных данных, $$$s = \tt czzz$$$, $$$t = \tt czzzzzczzz$$$.
Название |
---|