Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_задачи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
120.83 Кб
Скачать

Задача 14*

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

Все станции на линии пронумерованы числами от 1 до N. При этом станция номер 1 находится в городе, где проводится олимпиада, и в момент времени 0 ребята приходят на станцию. Станция, на которую нужно попасть ребятам, имеет номер E. Напишите программу, которая по данному расписанию движения электричек вычисляет минимальное время, когда ребята могут оказаться дома.

Во входном файле записаны сначала числа N (2  N  100) и E (2  E N). Затем записано число M (0   100), обозначающее число рейсов электричек. Далее идет описание M рейсов электричек. Описание каждого рейса электрички начинается с числа Ki (2  KiN) — количества станций, на которых она останавливается, а далее следует Ki пар чисел. Первое число каждой пары задает номер станции, второе — время, когда электричка прибывает на эту станцию(время выражается целым числом из диапазона от 0 до 109). Станции внутри одного рейса упорядочены в порядке возрастания времени. В течение одного рейса электричка все время движется в одном направлении — либо от города, либо к городу.

В выходной файл выведите одно число — минимальное время, когда ребята смогут оказаться на своей станции. Если существующими рейсами электричек они добраться не смогут, выведите –1.

Пример

Входной файл

Выходной файл

5 3

4

2 1 5 2 10

2 2 10 4 15

4 5 0 4 17 3 20 2 35

3 1 2 3 40 4 45

20

Задача 15*

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

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

Всего в городе n линий (0 < n < 20), d шоферов (и, соответственно, d автобусов) (0 < d < 30), занумерованных целыми числами от 1 до d, и s автобусных остановок (0 < s < 50), занумерованных целыми числами от 1 до s.

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

На первой строке входного файла записаны через один пробел целые числа n, d, и s, описанные выше. Следующие 2n строк содержат описание n автобусных маршрутов (2 строки для каждого маршрута) следующим образом: на первой строке через пробел перечисляются номера остановок на соответствующей автобусной линии в порядке их прохождения. После того, как автобус проходит последнюю остановку, указанную в списке, он идет снова к первой из списка. Вторая строка описывает, на каких остановках начинают движение конкретные автобусы. Описание состоит из пар si, di, где si — это номер остановки на данной линии автобуса, а di — номер водителя автобуса. Все числа si, di разделены на строке одним пробелом. В выходной файл нужно выдать строку Yes, если во входном файле описана ситуация, когда любой водитель в какой-то момент времени узнает все новости от своих коллег. В противном случае нужно вывести No.

Пример

Входной файл: input.txt

Выходной файл: output.txt

2 3 5

1 2 3

1 1 2 2

2 3 4 5

2 3

Yes

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]