Розглянемо максимальну можливу величину заторів. Якщо жодне місто не підвищувати до статусу "VIP", кожна дорога має значення . Отже, початкова сумарна величина мережі дорівнює 3 \cdot M.
Що відбувається, коли Фаді підвищує одне місто до статусу "VIP"?
Кожна дорога, що з'єднана з містом , змінює свій стан з (Standard–Standard) на (VIP–Standard). Її значення зменшується з до . Це зменшує сумарний показник мережі на для кожної дороги, що з'єднана з .
Якщо місто на іншому кінці дороги також підвищене до статусу "VIP", стан дороги змінюється з (VIP–Standard) на (VIP–VIP). Її значення зменшується з до . Це зменшує сумарний показник ще на .
Ключове спостереження: Підвищення міста до статусу "VIP" незалежно зменшує сумарний показник мережі рівно на для кожної дороги, що з ним з'єднана. У термінах графів, підвищення вершини зменшує сумарний показник на .
Отже, щоб мінімізувати сумарну величину заторів, потрібно максимізувати загальне зменшення. Обчислюємо степінь усіх міст, сортуємо їх у порядку спадання і вибираємо міст з найбільшими степенями.
Аналіз складності:
Часова складність: \mathcal{O}(N \log N + M) на кожен набір вхідних даних через сортування степенів вершин.
Пам'яттєва складність: \mathcal{O}(N + M) для зберігання списку суміжності / таблиці степенів.