Ввод-вывод во всех задачах может быть как стандартным, так и файловым.
Дана строка \(S = s_1s_2 \ldots s_n\) (индексация символов подстроки начинается с числа 1!) и множество запросов вида (\(l_1, r_1, l_2, r_2\)). Для каждого такого запроса нужно ответить, равны ли подстроки \(s_{l_1} \ldots s_{r_1}\) и \(s_{l_2} \ldots s_{r_2}\).
В первой строке записана строка \(S\), состоящая из строчных латинских букв. Эта строка непустая и имеет длину не более \(100\,000\) символов. Во второй строке записано целое число \(q\) (\(1 \le q \le 100\,000\)) — количество запросов. В каждой из следующих \(q\) строк записаны числа \(l_1, r_1, l_2, r_2\) (\(1 \le l_1 \le r_1 \le |S|\); \(1 \le l_2 \le r_2 \le |S|\)).
Для каждого запроса выведите “+
”, если соответствующие подстроки равны, и “-
”
в противном случае.
Ввод | Вывод |
---|---|
abacaba |
++-+ |
Даны две строки \(A\) и \(B\). Так же дано число \(L\). Нужно узнать, есть ли у строк \(A\) и \(B\) общая подстрока длиной \(L\).
В первых двух строках записаны строки \(A\) и \(B\), состоящие из строчных латинских букв. Эти строки непустые и имеют длину не более \(100\,000\) символов. В третьей строке записано целое число \(L\) (\(0 \le L \le 100\,000\)) — длина общей подстроки.
Выведите YES, если существует общая подстрока такой длины. В противном случае выведите NO.
Ввод | Вывод |
---|---|
saaa |
YES |
raabc |
NO |
Даны две строки. Найдите длину их максимальной общей подстроки.
В первых двух строках записаны строки \(A\) и \(B\), состоящие из строчных латинских букв. Эти строки непустые и имеют длину не более \(30\,000\) символов.
Выведите длину их максимальной общей подстроки.
Ввод | Вывод |
---|---|
abacaba |
5 |
abc |
0 |
aaa |
3 |
aabc |
2 |
Дана строка из маленьких латинских букв. Найдите её циклический сдвиг, являющийся палиндромом или установите, что такого нет.
Дана непустая строка длиной до $100000$ символов, состоящая из маленьких латинских букв.
Если искомый циклический сдвиг есть, то выведите номер его первого символа (индексация начинается с 1). Если циклических сдвигов несколько, то выведите любой. Если его нет, то выведите -1.
Ввод | Вывод |
---|---|
aaa |
1 |
bba |
2 |
abc |
-1 |
Даны \(K\) строк из маленьких латинских букв. Требуется найти их наибольшую общую подстроку.
В первой строке дано число \(K\) (\(1 \le K \le 10\)). В следующих \(K\) строках — собственно \(K\) строк (длины строк от \(1\) до \(10\,000\)).
Выведите наибольшую общую подстроку данных строк.
Ввод | Вывод |
---|---|
3 |
cab |