кира674
24.07.2022 06:19

Куча - Выбрать Максимум Напишите программу, которая будет обрабатывать последовательность запросов таких видов:

CLEAR — сделать пирамиду пустой (если в пирамиде уже были какие-то элементы, удалить все). Действие происходит только с данными в памяти, на экран ничего не выводится.

ADD n — добавить в пирамиду число n. Действие происходит только с данными в памяти, на экран ничего не выводится.

EXTRACT — вынуть из пирамиды максимальное значение. Следует и изменить данные в памяти, и вывести на экран или найденное максимальное значение, или, если пирамида была пустой, слово "CANNOT" (большими буквами).

Входные данные

Во входных данных записано произвольную последовательность запросов CLEAR, ADD и EXTRACT — каждый в отдельной строке, согласно вышеописанному формату.

Суммарное количество всех запросов не превышает 200000.

Выходные данные

Для каждого запроса типа EXTRACT выведите на стандартный выход (экран) его результат (в отдельной строке).

Примеры

Входные данные

ADD 192168812

ADD 125

ADD 321

EXTRACT

EXTRACT

CLEAR

ADD 7

ADD 555

EXTRACT

EXTRACT

EXTRACT

Выходные данные

192168812

321

555

7

CANNOT

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Зайчонок512
22.04.2022 04:00
Const
  n = 10;
var
  a: array[1..n] of integer;
  i, j, t: integer;
  flag:boolean;
 
begin
  Randomize;
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    a[i] := random(101)-50;
    Write(a[i]:4)
  end;
  Writeln;
  i:=1;
  repeat
    flag:=true;
    for j := 1 to n-i do
      if a[j] > a[j+1] then
      begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end;
    Inc(i);
  until (i>n-1) or flag;
  Writeln('Отсортированный по возрастанию массив');
  for i := 1 to n do Write(a[i]:4);
  Writeln
end.

Тестовое решение:
Исходный массив
 -32  -7   2   2  50 -33   1  31   4 -16
Отсортированный по возрастанию массив
 -33 -32 -16  -7   1   2   2   4  31  50
0,0(0 оценок)
Ответ:
Kyle147Rein
22.04.2022 04:00
Const
  n = 10;
var
  a: array[1..n] of integer;
  i, j, t: integer;
  flag:boolean;
 
begin
  Randomize;
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    a[i] := random(101)-50;
    Write(a[i]:4)
  end;
  Writeln;
  i:=1;
  repeat
    flag:=true;
    for j := 1 to n-i do
      if a[j] > a[j+1] then
      begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end;
    Inc(i);
  until (i>n-1) or flag;
  Writeln('Отсортированный по возрастанию массив');
  for i := 1 to n do Write(a[i]:4);
  Writeln
end.

Тестовое решение:
Исходный массив
 -32  -7   2   2  50 -33   1  31   4 -16
Отсортированный по возрастанию массив
 -33 -32 -16  -7   1   2   2   4  31  50
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота