Олимпиадный тренинг

Задача . C. Хорошая строка


Давайте назовем (ага, опять) строку хорошей, если ее длина четна, и каждый нечетный символ этой строки отличается от следующего за ним (первый символ отличается от второго, третий — от четвертого, и так далее). Например, строки good, string и xyyx — хорошие, а строки bad, aa и aabc — нет. Обратите внимание, что пустая строка является хорошей строкой.

Вам дана строка \(s\). Удалите из нее минимальное количество символов так, чтобы она стала хорошей.

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

В первой строке задано одно целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество символов в строке \(s\).

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

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

В первой строке выведите одно целое число \(k\) (\(0 \le k \le n\)) — минимальное количество символов, которые надо удалить из \(s\), чтобы она стала хорошей.

Во второй строке выведите \(s\) после всех удалений. Если она пустая, то можете вывести пустую строку, или не выводить вторую строку вообще.


Примеры
Входные данныеВыходные данные
1 4
good
0
good
2 4
aabc
2
ab
3 3
aaa
3

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя