Розбір
Автори: | Фейса Богдан, Тимкович Олександр |
Підготував: | Фейса Богдан |
Розбір: | Фейса Богдан |
Почнемо з того, що нам завжди вигідно змінювати числа лише на ті, які присутні в масиві.
Також розіб'ємо числа масиву на пари: .
Зафіксуємо число . Знайдемо відповідь для масиву за умови, що число повинно зустрічатись в масиві більше ніж разів.
Для того, щоб знайти відповідь для фіксованого числа , звернемо увагу на те, що кожна пара чисел може бути віднесена до однієї з 4 категорій:
(обидва числа з пари рівні )
або (рівно одне число з пари рівне )
(числа в парі одинакові, але не рівні )
(числа в парі різні й не рівні числу )
Кожну пару першого типу нам не вигідно змінювати взагалі.
Для досягнення умови , в масиві повинні залишитись лише пари типу та .
Кожну пару 2 типу вигідно змінити на пару .
Кожну пару 4 типу потрібно замінити або на пару типу або . Якщо після замін пар другого типу на перший всього входить в масив разів (де ), то нам потрібно ще перетворити пари 4 типу на пари першого типу, якщо навіть після перетворення всіх пар четвертого типу, кількість входжень числа недостатня, то ми змінюємо пари третього типу на пари першого типу.
Всі перевірки мінімальної кількості змін для фіксованого можна реалізувати за , перевірка всіх займе часу.
Сумарний час роботи рішення .