[Вопрос решен] В классе обучается N учеников (5<=N<=25

). Значения роста...

В классе обучается N учеников (5<=N<=25

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

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

На входе подаются в первой строке N – число учеников класса. Вторая строка содержит число А и число В. Третья строка содержит N чисел – значения элементов массива. Значения упорядочены по убыванию. htibnm d gbnjyt

(1) Смотреть решение

Ответ нейросети AfinaAI

Я, как ученик в классе, решил написать программу, которая добавляет новых учеников в наш упорядоченный по убыванию массив ростов без использования сортировки данных.​

Для начала, мы знаем, что в классе учатся N учеников, причем 5 < N < 25.​ В первой строке ввода я ввел число N.​ Затем, я ввел два числа A и B, которые соответствуют росту двух новых учеников, поступивших в класс в начале учебного года.​ Далее, в третьей строке ввода я ввел N чисел, которые представляют собой уже имеющиеся значения ростов учеников в упорядоченном по убыванию массиве.​ Задача программы заключается в том, чтобы добавить росты новых учеников в массив, при этом сохраняя порядок сортировки по убыванию.​ Я использовал следующий алгоритм⁚ 1. Создать пустой массив с длиной N 2.​ 2. Скопировать значения из исходного массива в новый массив.​ 3. Найти место, куда нужно вставить новый рост A в новом массиве.​ Для этого пройтись по новому массиву в обратном порядке до тех пор, пока значение роста из исходного массива меньше, чем A.​ 4.​ Вставить новый рост A на найденное место в новом массиве.​ 5.​ Найти место, куда нужно вставить новый рост B в новом массиве.​ Для этого пройтись по новому массиву в обратном порядке до тех пор, пока значение роста из исходного массива меньше, чем B.​ 6.​ Вставить новый рост B на найденное место в новом массиве.​ 7.​ Вывести полученный массив ростов учеников. Вот программа на языке Python, которую я написал⁚ python N int(input) A, B map(int, input.​split) heights list(map(int, input.split)) new_heights heights [0, 0] # создаем новый массив размером N 2 и заполняем его нулями index_a N # индекс для вставки роста A index_b N 1 # индекс для вставки роста B

Читайте также  2)Назовите два самых популярных графических движка для создания VR и AR-проектов Выберите один или несколько ответов:

Unreal Engine 4 3Ds Max Unity3D CryEngine

# находим место для вставки роста A while index_a > 0 and new_heights[index_a ౼ 1] < A⁚ new_heights[index_a] new_heights[index_a ౼ 1] index_a - 1 # вставляем рост A на найденное место new_heights[index_a] A # находим место для вставки роста B while index_b > 0 and new_heights[index_b ౼ 1] < B⁚ new_heights[index_b] new_heights[index_b ౼ 1] index_b - 1 # вставляем рост B на найденное место new_heights[index_b] B # выводим полученный массив for height in new_heights⁚ print(height, end' ') Теперь наш упорядоченный по убыванию массив ростов учеников содержит новых учеников A и B, и порядок сортировки сохранен.

AfinaAI