Оперативная память компьютера состоит из N ячеек, занумерованных числами от 0 до N-1. В текущий момент времени в памяти находятся M задач, каждая из которых использует свой участок памяти. Участки разных задач не пересекаются. Известны начальные и конечные адреса каждого участка для каждой задачи.
Найдите длину, а также начало и конец самого длинного сплошного участка памяти, свободного в данный момент времени от задач. Если таких участков несколько, то выведите концы участка с самыми большими номерами (самого правого участка).
Формат ввода
В первой строке записано одно целое число N — количество ячеек оперативной (1 ≤ N ≤ 2·109).
Во второй строке записано одно целое число M — количество задач, находящихся в памяти компьютера (0 ≤ M ≤ 15 000).
В каждой из следующих 2·M строк записаны номера начального адреса (в нечетных строках) и номера конечного адреса (в четных строках) участка памяти для каждой задачи. Гарантируется, что начальный адрес не больше конечного.
Формат вывода
В первой строке целое число — длину самого длинного сплошного участка памяти, свободного от данных.
Два целых числа через пробел — начальный и конечный адрес самого длинного сплошного участка памяти, свободного от задач.
Если вся память заполнена, то выведите единственное число 0.
Пример 1
Ввод Вывод
15
4
0
2
5
6
10
10
11
14
3
7 9
Пример 2
Ввод Вывод
13
2
0
0
6
7
5
8 12
Пример 3
Ввод Вывод
5
1
0
4
0
Примечания
В первом примере свободными являются участки [3;4] и [7;9]. Максимальную длину 3 из них имеет [7;9].
Во втором примере свободными являются участки [1;5] и [8;12]. Они имеют одинаковую длину 5. Самый правый из них [8;12].
В третьем примере вся память заполнена.
begin
var n:=ReadInteger('n=');
var a:=MatrixRandom(n,n,10,99);
var s:=0;
var k:=0;
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do Print(a[i,j]);
Writeln;
if a[i,i].IsEven then begin s+=a[i,i]; Inc(k) end;
end;
if k>0 then Writeln('S=',s/k:0:2)
else Writeln('На главной диагонали нет четных элементов')
end.
Тестовое решение
n= 8
63 13 33 90 25 21 87 91
88 88 48 13 30 59 81 27
73 23 76 77 52 19 33 97
53 87 13 74 17 35 61 70
77 96 51 61 82 33 63 22
39 88 84 54 88 73 74 69
76 26 69 14 45 80 70 54
80 36 47 38 18 22 84 62
S=75.33
Г) логика
2. Повествовательное предложение, в котором что-то утверждается или отрицается называется:
В) высказывание
3. Константа, которая обозначается «1» в алгебре логики называется:
В) истина
4. Какое из следующих высказываний являются истинным?
В) II + VI = VIII (2 + 6 = 8, записанное при римских чисел)
5. Объединение двух высказываний в одно с союза «и» называется:
Б) конъюнкция
6. Чему равно значение логического выражения (1v1)^(1v0)?
А) 1 ((1 v 1) ^ (1 v 0) = 1 ^ 1 = 1)
7. Что такое логика?
B) это наука о формах и законах человеческого мышления и, в частности, о законах доказательных рассуждений
8. Логической операцией не является:
A) логическое деление
9. Объединение двух высказываний в одно с оборота «если..., то..» называется:
Г) импликация
10. Таблица, содержащая все возможные значения логического выражения, называется:
Б) таблица истинности
11. Даны три высказывания:
А = (Наступила осень)
В = (Мы учимся в колледже)
С = (Мы решаем контрольную работу)
Напишите в виде формулы высказывание: «Наступила осень, мы учимся в колледже и решаем контрольную работу»
ABC
12. Придумайте ложное высказывание, соответствующее функции и постройте таблицу истинности для следующей функции:
Х=А+ВС
В ответе выписать комбинации А, В, С при которых Х – ложно.
Например, если A = (Скопье – столица Черногории), B = (Скопье – столица Македонии) и C = (Скопье – столица Эфиопии), то X = A + BC соответствует ложному высказыванию "Скопье – столица Черногории или Македонии и Эфиопии".
Таблица истинности:
A B C X
0 0 0 0
0 0 1 0
0 1 0 0 – случай из примера
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
X ложно при (A, B, C) = (0, 0, 0), (0, 0, 1), (0, 1, 0).