Петя работает в техподдержке местного провайдера. Так как он достаточно опытный сотрудник, то ему поручаются настолько сложные задачи, что на их выполнение может уходить по несколько дней. Задачи поступают к Пете в начале рабочего дня, а о их выполнении он отчитывается в конце того рабочего дня, когда он закончил соответствующую работу. Сложным периодом в работе Петя называет последовательность идущих подряд дней, в которые ему требуется работать не менее чем над K задачами. Если один сложный период начинается в день, непосредственно следующий за окончанием другого такого периода, то они рассматриваются как один сложный период в работе.
Рабочие дни пронумерованы в хронологическом порядке натуральными числами.
Имеется N заданий, про которые известно в начале какого дня они были даны Пети и в конце какого дня он отчитался о их выполнении. Требуется найти все сложные периоды в работе.
Формат ввода
В первой строке вводятся два разделенных одним пробелом натуральных числа N и K. В следующих N строках вводятся по одной в строке пары разделенных одним пробелом натуральных чисел – номера дней начала и окончания работы над заявкой.
Формат вывода
В первой строке выведите целое неотрицательное число M – количество сложных периодов. В каждой из следующих M строк выведите описания очередного сложного периода: номера первого и последнего его дней.
var
n,s,t,i:integer;
begin
Write('Укажите количество данных: ');
Read(n);
Writeln('Теперь вводите данные');
s:=0;
for i:=1 to n do
begin
Read(t);
s:=s+t
end;
Writeln('Средняя температура за месяц составила ',s/n:0:1)
end.
Пример решения
Укажите количество данных: 11
Теперь вводите данные
27 29 26 31 24 23 27 30 31 28 25
Средняя температура за месяц составила 27.4
var a, b, с: integer;
begin
write('Введите два числа: ');
readln(a, b);
if a < b then с := a + 1 else с := b + 1;
repeat с := с - 1
until (a mod с = 0) and (b mod с = 0);
write('NOD = ', с)
end.
//2. Алгоритм с вычитанием (цикл while)
var a, b: integer;
begin
write('a = ');
readln(a);
write('b = ');
readln(b);
while a <> b do
if a > b then
a := a - b
else
b := b - a;
writeln('NOD = ', a);
end.