eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

ДНК роботів

ДНК роботів

Останні досягнення у технології синтезу ДНК дозволили провести експеримент по створенню біороботів. Для полегшення завдання створення ПЗ для керування роботами було прийнято рішення, що їх ДНК буде складатись з \textbf{M} = \textbf{2^n} символів для деякого \textbf{n} ≥ \textbf{2}. Кріме цього, по технічним причинам це буде не звичайний рядок, а циклічний, тобто його можна починати читати з довільної позиції. Одним із завдань експерименту є вивчення мутацій біороботів. В результаті тривалих спостережень було знайдено багато різних видів роботів. Для розуміння процесу мутації вченим необхідно розв'язати наступну задачу. Для ДНК двох роботів потрібно визначити коефіцієнт їх схожості. Він обчислюється, як максимальна кількість співпадаючих символів при найкращому суміщенні цих ДНК. Чим більше символів співпадає, тим краще суміщення. Потрібно написати програму, яка знайде найкраще суміщення двох ДНК. \InputFile У першому рядку вхідного файлу записано одне число \textbf{M} (\textbf{4} ≤ \textbf{M} ≤ \textbf{131072}). У наступних двох рядках записані ДНК двох роботів. Обидві ДНК --- рядки, які складаються рівно з \textbf{M} символів з множини \{'\textbf{A}', '\textbf{C'}, '\textbf{G}', '\textbf{T'}\}. \InputFile У вихідний файл виведіть два числа --- максимальну кількість співпадаючих символів і значення оптимального здвигу --- невід'ємна кількість символів другої ДНК, яку необхідно перенести з кінця рядка у його початок для досягнення найкращого суміщення.
Ліміт часу 3 секунди
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
16
ACGTACGTACGTACGT
CGTACGTACGTACGTC
Вихідні дані #1
15 1
Автор Жуков Дмитро
Джерело Зимова Школа, Харків 2011, День 2