Возвращаясь с турслета, Вася пришел на станцию и хочет уехать в Москву. На станции не оказалось расписания электропоездов, но у Васи есть справочник, в котором указано время отправления поездов с конечных пунктов, а также время следования от каждого из конечных пунктов до станции, где находится Вася.
Васе определить, сколько ему придется ждать ближайшую электричку.
Входные данные Сначала вводятся два числа, задающих часы и минуты прихода Васи на станцию.
Далее идет число N — количество конечных станций, от которых отправляются электрички, проходящие через Васину станцию (1≤N≤100).
Далее идет N блоков данных (по одному блоку для каждой станции). Сначала записано время Ti следования электрички от станции ее отправления до станции, где находится Вася. Время задается в минутах и выражается целым неотрицательным числом, не превышающим 1440.
Далее идет число Mi, определяющее количество электричек в сутки, отправляющихся от этой станции (1≤Mi≤100). Далее идет Mi пар чисел, задающих времена отправления электричек от этой станции. Все времена указаны в возрастающем порядке.
Часы находятся в интервале от 0 до 23, минуты – от 0 до 59.
Считается, что все электропоезда ходят ежедневно. Т.е., например, если у нас только один пункт и только одна электричка, и с этого пункта она отправляется в 23.59 и идет до Васиной станции 61 минуту, то в 01.00 Вася может на ней уехать в тот день, когда он пришел на станцию (если он пришел не позднее 01.00), или на следующий день, если он придет позднее.
Гарантируется, что хотя бы одна электричка в сутки через Васину станцию проходит.
Выходные данные Выведите одно число — время в минутах, которое Васе придется ждать ближайшую электричку. Считается, что если Вася и электричка приходят на станцию одновременно, то Вася успевает на эту электричку и время ожидания 0.
// PascalABC.NET 3.0, сборка 1144 от 16.01.2016 type Point=record x,y:real end;
function GetPoint(c:char):Point; begin Writeln('Введите координаты точки ',c,':'); Read(Result.x,Result.y) end;
function Line(A,B:Point):real; begin Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y)) end;
function SqTriangle(pA,pB,pC:Point):real; begin var a:=Line(pB,pC); var b:=Line(pA,pC); var c:=Line(pA,pB); if (a+b>c) and (a+c>b) and (b+c>a) then begin var p:=(a+b+c)/2; Result:=sqrt(p*(p-a)*(p-b)*(p-c)) end else Result:=0 end;
begin var A:=GetPoint('A'); var B:=GetPoint('B'); var C:=GetPoint('C'); Writeln('Площадь треугольника равна ',SqTriangle(A,B,C)) end.
Тестовое решение: Введите координаты точки A: -5 3.18 Введите координаты точки B: 1.45 6.2 Введите координаты точки C: 6 -5.93 Площадь треугольника равна 45.98975
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку