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

Міста - конкуренти

Міста - конкуренти

У країні Флатландії є \textbf{N} міст, кожне місто випускає один певний товар з \textbf{M} товарів. Міста, що випускають один і той же товар, є містами-конкурентами. Города Флатландії хочуть об'єднатися в торгівельну мережу. Як показали дослідження, для того, щоб якість міста могли об'єднатися в торгівельну мережу, необхідно і достатньо, щоб з довільного міста \textbf{A} можна було дістатись по дорогам мережі в довільне інше місто \textbf{B}. При цьому в такій мережі не повинно бути доріг між городами-конкурентами, тобто міста-конкуренти не є сусідами у цій мережі. Ваша задача - по заданим містам Флатландії побудувати мережу доріг таким чином, щоб довжина мережі була мінімальною. Довжина мережі - це сума довжин побудованих доріг. Дороги між містами будуються таким чином, щоб попасти на них можна було тільки з міст, які вони з'єднують. Для того, щоб униктути перетинів, дороги можна розміщувати на різних рівнях. \InputFile У першому рядку вхідного файлу записано через пропуск два цілих числа \textbf{N} та \textbf{M} (\textbf{1} ≤ \textbf{N} ≤ \textbf{200}, \textbf{1} ≤ \textbf{M} ≤ \textbf{200}). В наступних \textbf{N} рядках описано міста Флатландії, опис кожного міста займає один рядок. У відповідному рядку записано через пропуск три цілих числа \textbf{X_i}, \textbf{Y_i}, \textbf{Z_i}, де \textbf{X_i} і \textbf{Y_i} - координати \textbf{i}-го міста, a \textbf{Z_i} - номер продукції, яку выпускає це місто (\textbf{-10000} ≤ \textbf{X_i}, \textbf{Y_i} ≤ \textbf{10000}, \textbf{1} ≤ \textbf{Z_i} ≤ \textbf{M}, \textbf{1} ≤ \textbf{i} ≤ \textbf{N}). \OutputFile У перший рядок вихідного файлу потрібно вивести одне дійсне число з точністю до \textbf{0.001} - мінімальну довжину мережі доріг. Якщо міста об'єднати в торгівельну мережу неможливо, то вивести \textbf{-1}.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
8 3
3 3 1
3 10 1
5 6 2
10 6 3
10 10 2
15 3 1
15 6 3
15 10 2
Вихідні дані #1
29.909