![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 30.12.2012
Сообщений: 1
|
![]()
Здравствуйте уважаемые форумчане! Уже несколько дней никак не могу решить задачку... Можете помочь с реализацией?, Вот сама задачка:
В столице одной небольшой страны очень сложная ситуация. Многокилометровые пробки буквально парализовали движение в городе, и власти на многих улицах ввели одностороннее движение, не анализируя, можно ли будет теперь проехать из любого места в городе в любое другое, не нарушая правила. Транспортная система столицы представляет собой N площадей, соединенных M полосами для движения, в том числе круговыми полосами, проходящими по площади. Каждая полоса предназначена для движения только в одну определенную сторону. По круговой полосе можно двигаться только внутри площади и только против часовой стрелки. Власти города на каждой полосе разместили видеокамеру, поэтому если Андрей едет по встречной полосе (при её наличии) или, в случае одностороннего движения, в сторону противоположную предписанной знаками, то после поездки против правил по каждой из полос ему придется заплатить штраф в размере одной тысячи тугриков этой страны. Андрей, который торопится купить товар со скидкой, решил доехать до магазина в любом случае, даже если для этого придется нарушать правила. Но он хочет выбрать такой маршрут движения, суммарный штраф на котором минимален. Андрей ещё не решил, откуда именно и в какой магазин он собирается ехать, поэтому ему необходимо ответить на несколько вопросов вида "Какой минимальный штраф надо заплатить, чтобы добраться из пункта А в пункт В?". Отвечая на потребности жителей столицы, известная поисковая система Индекс разрабатывает соответствующий сервис. Помогите этой поисковой системе. Формат входных данных: В первой строке входных данных содержатся два числа N и M - количество площадей и полос движения в городе соответственно (1 <= N <= 5000, 1 <= M <= 10000). Далее содержатся описания полос, по которым движение разрешено. Каждая полоса описывается номерами двух площадей, которые она соединяет. Движение разрешено в направлении от первой из указанных площадей ко второй. В следующей строке содердится одно число К - количество вопросов у Андрея (1 <= k <= 10000, N*K <= 2 * 10^7). В следующих строках описываются вопросы, каждый вопрос описывается номерами двух площадей, между которыми требуется найти дешевый путь. Путь необходимо продолжить от первой из указанных площадей ко второй. Формат выходных данных: Для каждого вопроса выведите одно число - искомый минимальный размер штрафа в тысячах тугриков. В случае, если пути между выбранной парой площадей не существует, выведите "-1". Пример: Входные данные: 5 5 2 1 2 4 3 2 4 3 5 4 3 5 1 1 5 2 3 Выходные данные: 0 2 0 |
![]() |
![]() |
![]() |
#2 |
Регистрация: 10.10.2012
Сообщений: 9
|
![]()
А Дейкстра не походит ?
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
![]()
Язык? Наработки? И вообще-то:
Цитата:
|
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача связанная с картами (Borland C++) | SegagMegaDrive | Помощь студентам | 0 | 25.11.2012 17:47 |
ошибка связанная с С++? | MultiFrukt | Компьютерное железо | 4 | 26.05.2012 13:45 |
Задача , связанная с двумерным массивом | stas135642 | Общие вопросы C/C++ | 5 | 14.11.2010 16:18 |
прога на С++,связанная с файлами | mephistophel | Помощь студентам | 0 | 19.03.2010 21:04 |