Планування мережі#6572

Планування мережі

1 секунда
64 мегабайти
Легка

У нафтовій індустрії розташування автозаправних станцій є критично важливим для прибутковості компанії. Щоб максимізувати прибуток, компанія використовує концепцію "Планування мережі" для вибору місць будівництва нових автозаправних станцій.

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

Компанія очікує від вас відповідь на питання: "В яких містах слід побудувати нові автозаправні станції, щоб максимізувати прибуток?" Звучить просто, чи не так?

Ось кілька важливих деталей, які вам знадобляться:

Вхідні дані

Перша строка вводу - це кількість тестових випадків T \le 10.

Кожен тестовий випадок починається з кількості міст (1 \le N \le 100000).

Наступні рядків містять ціле число D_i (0 \le D_i \le 1000) - попит на паливо в кожному місті.

Наступний рядок містить ціле число - кількість зв'язків.

Наступні рядків містять цілі числа C_1 та C_2, що описують двосторонні сусідні міста. У вхідних даних не буде повторюваних зв'язків (тобто, якщо є зв'язок для (C_1, C_2), не буде зв'язку для (C_2, C_1) в тому ж наборі даних). Також зауважте, що всі міста нумеруються від до .

Наступний рядок містить ціле число (0 \le S < N) - кількість існуючих автозаправних станцій.

Наступні рядків містять ціле число - місто, яке вже має автозаправну станцію.

Останній рядок містить ціле число (1 \le M \le N - S) - точну кількість нових автозаправних станцій, які вони повинні побудувати цього року.

Вихідні дані

Для кожного тестового випадку виведіть два рядки результату.

Перший рядок виводить додатне ціле число (використовуючи загальні правила округлення) - максимальний загальний попит на паливо, який вони можуть задовольнити, включаючи як існуючі автозаправні станції, так і нові автозаправні станції в оптимальних містах.

Другий рядок виводить список оптимальних міст, в яких вони повинні побудувати нові автозаправні станції, розділених пробілами та в зростаючому порядку. Міста з існуючими автозаправними станціями не враховуються в цьому списку. Якщо є більше одного можливого рішення, виведіть те, що є першим у лексикографічному порядку.

Ілюстрація для цього прикладу

Перший приклад

У цій ілюстрації ви побачите, що якщо вони побудують нову автозаправну станцію в Місті лише, це максимізує загальну поставку до літрів.

Другий приклад

У цьому прикладі є два найкращі рішення. Будівництво нових станцій у місті , місті та місті дасть такий самий прибуток, як і будівництво нових станцій у місті , місті та місті . Ми повинні відповісти , тому що це з'являється першим у лексикографічному порядку. Загальна поставка буде для міста , для міста та для міста . Місто , в якому вже є автозаправна станція, постачає літрів. Загальна поставка становить 268.2 + 182.6 + 290 + 150 = 890.8. Це округлюється до .

Приклади

Приклад 1

Loading
Loading