Задача A. Домой на электричках

Автор:X командный чемпионат Санкт-Петербурга по программированию - V Открытая Кировская командная олимпиада
Входной файл: a.in   Ограничение времени:2 сек
Выходной файл: a.out   Ограничение памяти:8 Мб

Условие

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

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

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

Формат входного файла

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

Формат выходного файла

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

Ограничения

2 ≤ E ≤ N ≤ 1000, 1 ≤ M ≤ 100, 2 ≤ Ki ≤ N.

Примеры тестов

Входной файл (a.in) Выходной файл (a.out)
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

Задача B. Рамка

Автор:X командный чемпионат Санкт-Петербурга по программированию - V Открытая Кировская командная олимпиада
Входной файл: b.in   Ограничение времени:2 сек
Выходной файл: b.out   Ограничение памяти:8 Мб

Условие

Рассмотрим прямоугольник размером X × Y, из середины которого вырезали прямоугольник размером (X - 2) × (Y - 2). Назовем такую геометрическую фигуру рамкой размера X × Y. На рисунке 1 изображена рамка размера 5 × 6.

Предположим, что у нас имеется неограниченный запас плиток размера A × 1. Рассмотрим следующую задачу: можно ли полностью замостить рамку размера X × Y такими плитками (плитки разрешается поворачивать на 90 градусов). Например, рамку 5 × 6 можно полностью замостить плитками размера 3 × 1 (например, как это сделано на рисунке 2), а плитками размера 4 × 1 - нельзя.

Формат входного файла

Первая строка входного файла содержит два целых числа — X и Y. Вторая строка содержит число N — количество видов плиток, которые следует проанализировать. Третья строка содержит N натуральных чисел. Обозначим i-ое число третьей строки входного файла за Ai.

Формат выходного файла

Выведите в выходной файл N строк, i-ая строка должна содержать слово yes, если можно замостить рамку размера X × Y плитками размера Ai × 1 и no в противном случае.

Ограничения

3 ≤ X, Y ≤ 106, 1 ≤ Ai ≤ 106, 1 ≤ N> ≤ 1000.

Примеры тестов

Входной файл (b.in) Выходной файл (b.out)
1
5 6
2
3 4
yes
no

Задача D. Три из четырех

Автор:X командный чемпионат Санкт-Петербурга по программированию - V Открытая Кировская командная олимпиада
Входной файл: d.in   Ограничение времени:2 сек
Выходной файл: d.out   Ограничение памяти:8 Мб

Условие

Дано множество точек на плоскости, которое обладает следующим свойством: среди любых четырех из заданных точек три лежат на одной прямой.

Требуется найти ломаную, которая имеет минимальную длину и проходит через все заданные точки.

Формат входного файла

Первая строка входного файла содержит число N — количество точек. Следующие N строк содержат координаты точек — пары целых чисел, не превышающих 10000 по абсолютной величине. Никакие две точки не совпадают.

Формат выходного файла

Выведите в выходной файл длину исходной ломаной с точностью не менее 103.

Ограничения

3 ≤ N ≤ 1000

Примеры тестов

Входной файл (d.in) Выходной файл (d.out)
1
4
0 0
1 0
2 0
1 1
3.41421356237309505

Задача F. Квадраты

Автор:X Командный чемпионат школьников Санкт-Петербурга по программированию
Входной файл: f.in   Ограничение времени:2 сек
Выходной файл: f.out   Ограничение памяти:8 Мб

Условие

Рассмотрим целочисленную решетку размера N x N. Пусть некоторые ее узлы покрашены в белый, а некоторые - в черный цвет. Требуется определить количество квадратов на заданной решетке, то есть квадтаров, вершины которых совпадают с узлами заданной решетки и покрашены в одинаковый цвет. Например, на решетке размера 4 x 4, изображенной на рисунке 1 такой квадрат один, он показан на рисунке 2.

Формат входного файла

Первая строка входного файла содержит число N - размер решетки. Следующие N строк содержат по N символов из множества {"0", "1"} и задают решетку. Если точка с координатами (i, j) покрашена в белый цвет, то j-ый символ i-ой строки есть "0", а если в черный, то "1".

Формат выходного файла

Количество квадратов на решетке из входного файла.

Ограничения

2 ≤ N ≤ 50.

Примеры тестов

Входной файл (f.in) Выходной файл (f.out)
1
4
0100
0011
1000
0111
1

Задача G. Таймер

Автор:X Командный чемпионат школьников Санкт-Петербурга по программированию
Входной файл: g.in   Ограничение времени:2 сек
Выходной файл: g.out   Ограничение памяти:8 Мб

Условие

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

Формат входного файла

В первой строке входного файла записано текущее время в формате ЧЧ:ММ:СС (с ведущими нулями). При этом оно удовлетворяет ограничениям: ЧЧ — от 00 до 23, ММ и СС — от 00 до 60.

Во второй строке записан интервал времени, который должен быть измерян. Интервал записывается в формате Ч:М:С (где Ч, М и С - от 0 до 109, без ведущих нулей). Дополнительно если Ч=0 (или Ч=0 и М=0), то они могут быть опущены. Например, 100:60 на самом деле означает 100 минут 60 секунд, что то же самое, что 101:0 или 1:41:0. А 42 обозначает 42 секунды. 100:100:100 - 100 часов, 100 минут, 100 секунд, что то же самое, что 101:41:40.

Формат выходного файла

В выходной файл выведите в формате ЧЧ:ММ:СС время, во сколько прозвучит звуковой сигнал. При этом если сигнал прозвучит не в текущие сутки, то дальше должна следовать запись +<кол-во> days. Например, если сигнал прозвучит на следующий день - то +1 days.

Примеры тестов

Входной файл (g.in) Выходной файл (g.out)
1
01:01:01 
48:0:0
01:01:01+2 days
2
01:01:01
58:119
02:01:00
3
23:59:59
1
00:00:00+1 days

0.049s 0.004s 19