eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Видаленя доріг

Видаленя доріг

Є мережа з \textbf{n} міст та \textbf{m} двонаправлених доріг, що сполучають ці міста. Перші \textbf{k} міст вважаються важливими. Вам слід таким чином видалити найменшу кількість доріг, щоб в мережі що залишиться не було циклів, які проходять через важливі міста. Цикл являє собою послідовність як мінімум трьох таких різних міст, що кожна пара сусідніх міст зв'язана між собою дорогою, а перше та останнє місто також сполучено дорогою. \InputFile Перший рядок містить кількість тестів \textbf{t} (\textbf{1} ≤ \textbf{t} ≤ \textbf{20}). Кожний тест починається рядком, що містить три цілі числа \textbf{n}, \textbf{m} та \textbf{k} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10000}, \textbf{1} ≤ \textbf{m} ≤ \textbf{50000}, \textbf{1} ≤ \textbf{k} ≤ \textbf{n}) - кількість міст, доріг та важливих міст відповідно. Міста пронумеровані числами від \textbf{0} до \textbf{n - 1}, а важливі міста пронумеровані числами від \textbf{0} до \textbf{k - 1}. Кожний з наступних \textbf{m} рядків містить два цілі числа \textbf{a_i} та \textbf{b_i}, \textbf{0} ≤ \textbf{i} < \textbf{m}, які описують номери різних міст, сполучених дорогою. Відомо, що \textbf{0} ≤ \textbf{a_i}, \textbf{b_i} < \textbf{n} та \textbf{a_i} ≠ \textbf{b_i}. Між двома містами існує не більше однієї дороги. \OutputFile Для кожного тесту, пронумерованого числами від \textbf{1} до \textbf{t}, вивести рядок "\textbf{Case #i:} ", за яким йде ціле число - найменша кількість доріг, що слід видалити таким чином, щоб не залишилося жодного циклу, якому належало хоча б одне важливе місто. \textbf{Приклад} У першому прикладі є \textbf{n = 5} міст та \textbf{m = 7} доріг, міста \textbf{0} та \textbf{1} є важливими. Можна видалити дороги (\textbf{0}, \textbf{1}) та (\textbf{1}, \textbf{2}), після чого залишиться мережа, яка не буде містити циклів, що проходять через важливі міста. Відмітимо, що у залишковій мережі існує цикл, що проходить через неважливі міста. Для виконання вимоги задачі існує декілька способів видалення двох ребер. Видаленням одного ребра неможливо знищити усі цикли, які проходять через важливі міста.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2
5 7 2
0 1
1 2
1 4
0 2
2 4
2 3
3 4
8 12 2
0 2
0 4
0 5
2 3
2 7
3 1
3 4
4 6
5 6
5 7
6 1
7 1
Вихідні дані #1
Case #1: 2
Case #2: 4