Оперативная память компьютера состоит из 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].
В третьем примере вся память заполнена.
//Задан одномерный массив, заполненный 15-тью случайными целыми числами из интервала от -20 до 20.
//Составь программу, выполняющую следующие действия: Заполнение массива, вывод на экран всех элементов исходного массива в строчку через пробел,
//сортировка элементов массива по возрастанию, вывод полученного в результате массива на экран с новой строки через пробел.
program massiv;
var m:array[1..15] of integer;
i,j:byte;
t:integer;
BEGIN
//заполнение случайными числа в диапазоне [-20;20]
//random(41) выдает случ. значение от 0 до 40, если вычесть -20 с концов этого отрезка получится от -20 до 20
for i:=1 to 15 do m[i]:=random(41)-20;
//вывод полученного массива на экран
for i:=1 to 15 do write(m[i],' ');
writeln;//переход на следующую строку
//сортировка пузырковым методом
for i:=1 to 14 do
for j:=i+1 to 15 do
if (m[i]>m[j]) then begin
t:=m[i]; m[i]:=m[j]; m[j]:=t;//обмен элементов массива местами
end;
writeln('Остортированный массив');
//вывод сортированного массива на экран
for i:=1 to 15 do write(m[i],' ');
END.
Объяснение:
2. Из интернета, архива, галлереи.
3. Чтобы изменить способ размещения рисунка, следует щелкнуть на нём правой кнопкой мыши и выбрать в контекстном меню пункт Формат рисунка.
4. Левая кнопка мыши, нажать на вставить. Или же выбрать в верхнем левом углу выбрать файл и вставить.
5. Нажать два раза правой кнопкой мыши.
6. CTRL + C, CTRL + V. Или же левой кнопкой мыши нажать на рисунок и выбрать пунк: копировать.
7. Левой кнопкой мыши нажать на рисунок и выбрать пункт удалить. Или же нажать на клавишу Del.
8. В разделе Работа с рисунками на вкладке Формат в группе Изменение нажмите кнопку Сжать рисунки. Чтобы выполнить сжатие только для выбранных, а не для всех рисунков в документе, установите флажок Применить только к этому рисунку.