Сайт підготовки до олімпіади з інформатики

програмування в С++

Збирання мита (TALLAGE) PDF Печать E-mail
Добавил(а) Administrator   
21.09.11 10:43

Задача 2. Збирання мита (TALLAGE

Король країни Аріїв завоював N міст на території сусідніх держав.

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

Вхідні дані:

Перший рядок вхідного файлу містить натуральне число N – кількість міст у країні, а також цілі числа X та Yкоординати столиці.

Наступні N рядків містять через проміжок координати Xi , Yi завойованих міст.

Вихідні дані:

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

Наступні рядки мають містити у довільному порядку список побудованих доріг у форматі:

<номер міста> => <номер міста>

При цьому столицю позначте номером 0.

Якщо відповідей декілька, виведіть одну довільну з них.

Приклади:

TALLAGE.DAT

TALLAGE.SOL

6  0 0

 1  1

-1  1

 0  2

 1 -1

-1 -1

 0 -2

8.485

2 3

3 1

1 0

0 4

4 6

6 5

 

Статистика

Пользователей : 261
Статей : 225
Просмотрено статей : 115344

Вход/Регистрация

Нет