Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Про Красную Шапочку и не только... 11. Задачка про Красную Шапочку


Информационный Канал Subscribe.Ru

Заходите на сайт www.hood.h15.ru

11.

Задача 6. Красная Шапочка
Входной файл: redhat.in
Выходной файл: redhat.out
Ограничение по времени: 2 сек.
Ограничение по памяти: 64 Мб
Максимальный балл: 100


XVI Всероссийская олимпиада школьников по информатике [2004]

В непроходимом лесу имеется N полянок и M тропинок между 
ними. Каждая тропинка соединяет две различные полянки. Две 
полянки могут быть соединены несколькими тропинками.  

На двух разных полянках живут Красная Шапочка и ее бабушка. 
Домик Красной Шапочки находится на полянке с номером 1, а 
домик бабушки - на полянке с номером N. Красная Шапочка 
хорошо ориентируется в лесу и знает, какое минимальное 
время ей потребуется для прохождения каждой тропинки. Когда 
Красная Шапочка идет по лесу, она переходит с тропинки на 
тропинку только на полянках. На каждой полянке есть 
укрытие, в котором Красная Шапочка может спрятаться на 
некоторое время.  

В этом же лесу живет Волк. Время, за которое Волк пробегает 
какую-либо тропинку, может отличаться от времени, за 
которое по ней проходит Красная Шапочка. Кроме того, если 
Волк пробегает по одной и той же тропинке несколько раз, то 
каждый раз он может тратить на это разное время.  

С края полянки, где живет Красная Шапочка, Волк увидел, что 
она собирается нести пирожки бабушке и побежал по тропинкам 
привычного ему пути от дома Красной Шапочки к дому бабушки. 
Волк начинает бежать от домика Красной Шапочки в тот 
момент, когда она решила выйти из дома, его путь 
заканчивается как только он окажется на полянке с домиком 
бабушки. Ни на одной полянке Волк не задерживается.  

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

Необходимо написать программу, которая поможет Красной 
Шапочке добраться к бабушке раньше Волка, если известна 
последовательность тропинок, по которым побежал Волк.  

Входные данные

Первая строка входного файла содержит числа N, M и K (2 ? N 
? 2000, 1 ? M ? 100000, 1 ? K ? 100000). Следующие M строк 
содержат по три числа: Bi, Ei - номера полянок, которые 
соединяет i-я тропинка, и Ti - минимальное время, за 
которое Красная Шапочка может по ней пройти (1 ? Ti ? 
10000). В следующих K строках находится последовательное 
описание пути Волка, по два числа в строке: Pi - номер 
тропинки, по которой он побежит, и Vi - время, которое он 
на это затратит (1 ? Vi ? 10000). Путь волка всегда 
начинается на полянке 1 и заканчивается на полянке N. Все 
числа во входном файле целые и в пределах одной строки 
разделены пробелами.  

Выходные данные

В том случае, если Красная Шапочка не может добраться до 
домика бабушки быстрее Волка, выходной файл должен 
содержать слово 'NO'.  

Если Красная Шапочка сможет добраться до домика бабушки 
быстрее волка, в первой строке выходного файла должно быть 
слово 'YES'. Во второй строке в этом случае должно 
содержаться число тропинок в пути Красной Шапочки. В третью 
строку следует вывести номера тропинок в том порядке, в 
котором Красная Шапочка должна по ним пройти. Числа должны 
быть разделены пробелами.  

Информацию о времени прохождения по тропинкам и остановках 
на полянках в выходной файл выводить не нужно. 
                                          

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: rest.funny.rrh
Архив рассылки
Отписаться
Вспомнить пароль

В избранное