Информатика · 2 заданий
Подпоследовательности
Задания по теме «Подпоследовательности» с ответами и решениями. Практикуйся и разбирай ошибки.
- ЗаданиеСложность 2
По каналу связи передаётся последовательность положительных целых чисел Х1, Х2, ... все числа не превышают 1000, их количество заранее неизвестно. Каждое число передаётся в виде отдельной текстовой строки, содержащей десятичную запись числа. Признаком конца передаваемой последовательности является число 0. Участок последовательности от элемента ХT до элемента XT+N называется подъёмом, если на этом участке каждое следующее число больше или равно предыдущему, причем участок нельзя расширить, т. е. 1) Т = 1 или ХT-1 > ХT 2) XT+N — последний элемент последовательности или XT+N > XT+N+1. Высотой подъёма называется разность XT+N − ХT. Подъём считается значительным, если высота подъёма больше величины минимального элемента этого подъема. Напишите программу, которая вычисляет количество значительных подъемов в заданной последовательности. Программа должна вывести результаты в следующей форме: Получено чисел: ... Найдено значительных подъемов: ... Вам предлагаются два задания, связанные с этой задачей: задание А и задание Б. Вы можете решать оба задания А и Б или одно из них по своему выбору. Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание составляет 0 баллов. Задание Б является усложненным вариантом задания А, оно содержит дополнительные требования к программе. Перед программой укажите версию языка программирования. А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве, после чего будут проверены все возможные пары элементов. Обязательно укажите, что программа является решением задания А. Максимальная оценка за выполнение задания А – 2 балла. Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик). Программа считается эффективной по времени, если время работы программы пропорционально количеству элементов последовательности N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Обязательно укажите, что программа является решением задания Б. Перед текстом программы кратко опишите алгоритм решения задачи. Пример входных данных: 144 17 21 27 3 7 9 11 25 0 Пример выходных данных для приведённого выше примера входных данных: Получено чисел: 9 Найдено значительных подъемов: 1
- ЗаданиеСложность 2
По каналу связи передается последовательность положительных целых чисел $X_1, X_2$ … все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается в виде отдельной строки, содержащей десятичную запись числа. Признаком конца передаваемой последовательности является число 0. Участок последовательности от элемента XT до элемента $X_T плюс N$ называется подъемом, если на этом участке каждое следующее число больше предыдущего. Высотой подъема называется разность $X_T плюс N минус X_T$ Напишите эффективную программу, которая вычисляет наибольшую высоту среди всех подъемов последовательности. Если в последовательности нет ни одного подъема, программа выдает 0. Программа должна напечатать отчет по следующей форме: Получено ... чисел Наибольшая высота подъема: … Вам предлагаются два задания, связанные с этой задачей: задание А и задание Б. Вы можете решать оба задания А и Б или одно из них по своему выбору. Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание составляет 0 баллов. Задание Б является усложненным вариантом задания А, оно содержит дополнительные требования к программе. Перед программой укажите версию языка программирования. А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве, после чего будут проверены все возможные пары элементов. Обязательно укажите, что программа является решением задания А. Максимальная оценка за выполнение задания А – 2 балла. Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик). Программа считается эффективной по времени, если время работы программы пропорционально количеству элементов последовательности N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Обязательно укажите, что программа является решением задания Б. Перед текстом программы кратко опишите используемый вами алгоритм решения задачи. Пример входных данных: 144 17 27 3 7 9 11 10 0 Пример выходных данных для приведенного выше примера входных данных: Получено 8 чисел Наибольшая высота подъема: 10