Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачки.doc
Скачиваний:
31
Добавлен:
25.03.2015
Размер:
247 Кб
Скачать
☆

Минимумы и максимумы

Для решения заданий из данной группы следует использовать "однопроходные" алгоритмы, позволяющие получить требуемый результат после однократного просмотра набора исходных данных. Все указания предполагают именно такие алгоритмы решения. Однопроходные алгоритмы обладают важным преимуществом: для решения задачи не требуется хранить в памяти одновременно весь набор данных. Поэтому при программировании таких алгоритмов не нужно использовать массивы.

Minmax1.Найти минимальный и максимальный из данных десяти элементов.

Minmax2.Найти номера минимального1|максимального2из данных десяти элементов.

Minmax3.Найти номера первого1|последнего2минимального3|максимального4из данных десяти целочисленных элементов.

Minmax4.Найти количество минимальных1|максимальных2из данных десяти целочисленных элементов.

Minmax5.Найти минимальный1|максимальный2четный3|нечетный4из данных десяти ненулевых целочисленных элементов. Если требуемые элементы отсутствуют, то вывести 0.

Minmax6.Найти [минимальный положительный]1|[максимальный отрицательный]2из данных десяти элементов. Если требуемые элементы отсутствуют, то вывести 0.

Minmax7.Даны числа a, b (0 < a < b) и набор из десяти элементов. Найти минимальный1|максимальный2из элементов, содержащихся в интервале (a, b). Если требуемые элементы отсутствуют, то вывести –1.

Minmax8.Дан набор из десяти целочисленных элементов. Найти количество элементов, расположенных перед1|после2первого3|последнего4минимального5|максимального6.

Minmax9.Найти номер первого1|последнего2экстремального (то есть минимального или максимального) из данных десяти целочисленных элементов.

Minmax10.Дан набор из десяти целочисленных элементов. Найти количество элементов, содержащихся между первым и последним минимальным1|максимальным2. Если в наборе имеется единственный минимальный1|максимальный2элемент, то вывести 0.

Minmax11.Найти два наименьших1|наибольших2из данных десяти элементов.

Minmax12.Дан набор из десяти целочисленных элементов. Найти максимальное количество подряд идущих минимальных1|максимальных2элементов.

Одномерные массивы

Array1.Дан массив размера N. Вывести его элементы в обратном порядке.

Array2.Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2индексами, а затем — с нечетными1|четными2.

Array3.Дан целочисленный массив A размера 10. Вывести номер первого1|последнего2из тех его элементов A[i], которые удовлетворяют двойному неравенству: A[1] < A[i] < A[10]. Если таких элементов нет, то вывести 0.

Array4.Дан целочисленный массив размера N. Преобразовать его, прибавив к четным1|нечетным2числам первый3|последний4элемент. Первый и последний элементы массива не изменять.

Array5.Дан целочисленный массив размера N. Вывести вначале все его четные1|нечетные2элементы, а затем — нечетные1|четные2.

Array6.Поменять местами минимальный и максимальный элементы массива размера 10.

Array7.Заменить все положительные1|отрицательные2элементы целочисленного массива размера 10 на значение минимального3|максимального4.

Array8.Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами.

Array9.Дан массив размера N. Осуществить циклический сдвиг элементов массива влево1|вправо2на одну позицию.

Array10.Дан массив размера N и число k (0 < k < 5, k < N). Осуществить циклический сдвиг элементов массива влево1|вправо2на k позиций.

Array11.Проверить, образуют ли элементы целочисленного массива размера N арифметическую1|геометрическую2прогрессию. Если да, то вывести разность1|знаменатель2прогрессии, если нет — вывести 0.

Array12.Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем [четные и нечетные]1|[положительные и отрицательные]2числа. Если чередуются, то вывести 0, если нет, то вывести номер первого элемента, нарушающего закономерность.

Array13.Дан массив размера N. Найти количество его локальных минимумов1|максимумов2.

Array14.Дан массив размера N. Найти максимальный1|минимальный2из его локальных минимумов1|максимумов2.

Array15.Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают1|убывают2.

Array16.Дан массив размера N. Определить количество его промежутков монотонности (то есть участков, на которых его элементы возрастают или убывают).

Array17.Дано вещественное число R и массив размера N. Найти элемент массива, который наиболее1|наименее2близок к данному числу.

Array18.Дано вещественное число R и массив размера N. Найти два элемента массива, сумма которых наиболее1|наименее2близка к данному числу.

Array19.Дан массив размера N. Найти номера двух ближайших чисел из этого массива.

Array20.Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов.

Array21.Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся [менее двух раз]1|[более двух раз]2|[ровно два раза]3|[ровно три раза]4.

Array22.Дан целочисленный массив размера N. Если он является перестановкой, то есть содержит все числа от 1 до N, то вывести 0, в противном случае вывести номер первого недопустимого элемента.

Array23.Дан массив размера N. Преобразовать его, вставив перед1|после2каждого положительного3|отрицательного4элемента нулевой элемент.

Array24.Дан целочисленный массив размера N. Назовемсериейгруппу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов (длина серии может быть равна 1). Вывести массив, содержащий длины всех серий исходного массива.

Array25.Дан целочисленный массив размера N. Преобразовать массив, увеличив1|уменьшив2каждую его серию на один элемент.

Array26.Дан целочисленный массив размера N. Преобразовать массив, увеличив первую1|последнюю2|все3серии наибольшей длины на один элемент.

Array27.Дан целочисленный массив размера N. Вставить перед1|после2каждой серии нулевой элемент.

Array28.Дано число k и целочисленный массив размера N. Поменять местами первую1|последнюю2и k-ю серии массива. Если серий в массиве меньше k, то вывести массив без изменений.

Array29.Дано число k и целочисленный массив размера N. Удалить из массива все серии, длина которых меньше1|равна2|больше3k.

Array30.Дано число k и целочисленный массив размера N. Заменить каждую серию, длина которой меньше1|равна2|больше3k, на один нулевой элемент.

Array31.Даны два массива A и B размера 5, элементы которых упорядочены по возрастанию1|убыванию2. Объединить эти массивы так, чтобы результирующий массив остался упорядоченным.

Array32.Упорядочить массив размера N по возрастанию1|убыванию2.

Array33.Дан массив размера N. Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют возрастающую1|убывающую2последовательность.

Array34.Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее близкой1|удаленной2от точки A.

Array35.Дано множество A из N точек. Среди всех точек этого множества, лежащих в первой1|второй2|третьей3|четвертой4четверти, найти точку, наиболее близкую5|удаленную6от начала координат. Если таких точек нет, то вывести точку с нулевыми координатами.

Array36.Дано множество A из N точек. Найти пару различных точек этого множества с минимальным1|максимальным2расстоянием между ними и само это расстояние (точки выводятся в том же порядке, в котором они перечислены при задании множества A).

Array37.Дано множество A из N точек. Найти такую точку из данного множества, сумма расстояний от которой до остальных его точек минимальна1|максимальна2, и саму эту сумму.

Array38.Даны множества A и B, состоящие соответственно из N1 и N2 точек. Найти минимальное1|максимальное2расстояние между точками этих множеств и сами точки, расположенные на этом расстоянии.

Array39.Дано множество A из N точек. Найти наименьший1|наибольший2периметр треугольника, вершины которого принадлежат различным точкам множества A, и сами эти точки (точки выводятся в том же порядке, в котором они перечислены при задании множества A).

Array40.Дано множество A из N точек с целочисленными координатами. Порядок на координатной плоскости определим следующим образом: (x1,y1) < (x2,y2), если либо x1 < x2, либо x1 = x2 и y1 < y2. Расположить точки данного множества по возрастанию1|убыванию2в соответствии с указанным порядком.

[