Присоединиться

11 класс·высокий уровень

По каналу связи передается последовательность положительных целых чисел

Условие

По каналу связи передается последовательность положительных целых чисел X1,X2,X_1, X_2, … все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается в виде отдельной строки, содержащей десятичную запись числа. Признаком конца передаваемой последовательности является число 0. Участок последовательности от элемента X_T до элемента XT+NX_T + N называется подъемом, если на этом участке каждое следующее число больше предыдущего. Высотой подъема называется разность XT+N−XTX_T + N - X_T Напишите эффективную программу, которая вычисляет наибольшую высоту среди всех подъемов последовательности. Если в последовательности нет ни одного подъема, программа выдает 0. Программа должна напечатать отчет по следующей форме:Получено ... чисел Наибольшая высота подъема: … Вам предлагаются два задания, связанные с этой задачей: задание А и задание Б. Вы можете решать оба задания А и Б или одно из них по своему выбору.

Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание составляет 0 баллов.

Задание Б является усложненным вариантом задания А, оно содержит дополнительные требования к программе. Перед программой укажите версию языка программирования. А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве, после чего будут проверены все возможные пары элементов.

Обязательно укажите, что программа является решением задания А.Максимальная оценка за выполнение задания А - 2 балла. Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик).Программа считается эффективной по времени, если время работы программы пропорционально количеству элементов последовательности N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Обязательно укажите, что программа является решением задания Б. Перед текстом программы кратко опишите используемый вами алгоритм решения задачи.

Пример входных данных:144172737911100Пример выходных данных для приведенного выше примера входных данных:Получено 8 чиселНаибольшая высота подъема: 10 Пояснения для проверяющих.1. Задание Б является усложнением задания А. Если в качестве решения задания Б представлено решение задания А, то согласно приведённым ниже критериям, его оценка будет такой же, как если бы это решение было представлено в качестве решения задания А.2. Два задания и, соответственно, возможность для экзаменуемого представить две программы дают ученику возможность (при его желании) сначала написать менее сложное и менее эффективное решение (задание А), которое даёт ему право получить два балла, а затем приступить к поиску более эффективного решения. 3. Каждая из программ, представленных экзаменуемым (но не более двух), оценивается по нижеследующим критериям. В качестве итоговой оценки берётся наибольшая из двух оценок.

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. Программа читает все входные данные один раз, не запоминая все входные данные в массиве. Во время чтения программа помнит число LMax — высоту самого высокого из уже закончившихся подъемов, а также необходимые сведения о текущем подъеме, например, число L — высоту текущего подъема (то есть разность между последним и первым числом участка) и последнее прочитанное число T (это число — наибольшее из чисел текущего подъема). Прочитав очередное число R, программа сравнивает его с числом T. Если R > T, то значение L увеличивается на R-T. В противном случае фиксируется конец подъема и начало нового участка. То есть, во-первых, значение L сравнивается с LMax и, при необходимости, LMax полагается равным L. Во-вторых, полагаем L =

Осталось ещё 1 шаг

  1. | Пример правильной и эффективной программы…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»

По каналу связи передается последовательность положительных целых чисел — решение с объяснением | Lom Ai