C. Наибольшая из подстрок
Даны подстрок строки , каждая задана парой . Выведите номер лексикографически наибольшей из них. Если таких несколько, выведите наименьший номер.
Сравнение двух подстрок - то же, что в классной задаче: двоичным поиском находим длину общего префикса, дальше смотрим на первый различающийся символ, а если различий нет - на длины.
Дальше это просто поиск максимума: держим текущего лидера и сравниваем с ним каждую следующую подстроку. Всего сравнений по .
Тонкость с «наименьшим номером»: лидер меняется только при строго большей подстроке. Если сравнение вернуло «равны», лидер остаётся прежним.
Заведите сравнение отдельной функцией, возвращающей , или , - иначе ветка равенства теряется почти наверняка.
Формат ввода
В первой строке - строка () из строчных латинских букв.
Во второй - число ().
В следующих строках - пары , ().
Формат вывода
Одно число - номер лексикографически наибольшей подстроки.
Примеры
abacaba 3 1 3 5 7 2 4
3
ba 2 1 1 2 2
1