Colorful String#249

Colorful String (Editorial)

Розглянемо, що означає умова «рядки відрізняються в кожній позиції».

Обидва отримані рядки мають довжину . Якщо вони відрізняються в кожній позиції , то символи \text{чорний}_p та \text{червоний}_p утворюють пару, у якій один нуль, а інший одиниця — інших варіантів для двійкових символів немає.

Таких пар рівно , і разом вони охоплюють усі символів рядка. Отже, у всьому рядку має бути рівно одиниць і рівно нулів.

Ця умова не лише необхідна, а й достатня. Якщо одиниць рівно (а отже, і нулів рівно ), поставимо у відповідність кожній одиниці якийсь нуль — утвориться пар. Тепер із кожної пари пофарбуємо один символ у червоний, а другий залишимо чорним, узгодивши порядок так, щоб партнери потрапили на однакові позиції у своїх рядках. Отримані рядки відрізнятимуться скрізь.

Отже, весь розв'язок — порахувати кількість одиниць і порівняти її з : якщо збігається, виводимо Yes, інакше No. Складність — .