Плюсануть
Поделиться
Класснуть
Запинить


Олимпиадный тренинг

Вы можете самостоятельно решать эти задачи столько раз, сколько вам это понадобится.
   

10385

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов.  Удалять элементы в начале и в конце до тех пор, пока сумма массива не будет кратна 5 (сначала первый, затем последний и т.д.).

В первой строке вводится число N (1<=N<=15)  - количество элементов одномерного массива
Во второй строке вводится N целых чисел (ввод чисел происходит с клавиатуры)

Пример входных и выходных данных

№ теста Входные данные Выходные данные
1 4
2 6 4 5
6 4

10384

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов.  Удалить неодинаковые симметричные элементы.

В первой строке вводится число N (1<=N<=15)  - количество элементов одномерного массива
Во второй строке вводится N целых чисел (ввод чисел происходит с клавиатуры)

Пример входных и выходных данных

№ теста Входные данные Выходные данные
1
5
1 0 2 0 0
0 2 0
2
6
4 0 1 4 5 4 
4 4

10383

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

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

Входные данные
В первой строке вводится число N (1<= <=15)  - количество элементов одномерного массива.
Во второй строке вводится N целых чисел. Числа в строке разделены одним пробелом. 

Выходные данные
Выведите измененный массив.

Примечание
Программа должна менять массив "на месте". То есть массив необходимо именно изменить, а не создавать новый массив или сразу выводить требуемые эллементы на экран!
 

Примеры
Входные данные Выходные данные
1
5
1 0 2 0 0
1 2
2 6
4 0 1 4 5 4
4 4 5

10382

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов.  Удалить самую длинную последовательность нулей
(одинаковой длины последовательностей нет).

В первой строке вводится число N (1<=N<=20)  - количество элементов одномерного массива
Во второй строке вводится N целых чисел (ввод чисел происходит с клавиатуры)

Пример входных и выходных данных

№ теста Входные данные Выходные данные
1
5
1 0 2 0 0
1 0 2
2
6
4 0 0 0 3 0 
4 3 0

1875

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов (2<=N<=15). Удалить из него все элементы, оканчивающиеся на 0

Формат входных данных:
На входе подаются в первой строке N - число элементов массива
Вторая строка содержит N чисел - значения элементов массива

Формат выходных данных: Выведите результирующий массив в строку

Пример:
Ввод
5
43  -50  76  -84 100 

Вывод
43  76 -84

1878

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N положительных элементов, больших 1 (2<=N<=100). Вставить значение a перед первым максимальным элементом, значение b после первого максимального элемента. 

Формат входных данных:
На входе подаются в первой строке N - число элементов массива
Вторая строка содержит число a и число b
Третья строка содержит N чисел - значения элементов массива

Формат выходных данных: Выведите результирующий массив в строку

Пример:
Ввод
5
100 200
43  50  76  84 100 

Вывод
43 50 76 84 100 100 200

1876

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N положительных элементов, больших 1 (2<=N<=100). После каждого элемента вставить его минимальный делитель больший 1.

Формат входных данных:
На входе подаются в первой строке N - число элементов массива
Вторая строка содержит N чисел - значения элементов массива

Формат выходных данных: Выведите результирующий массив в строку

Пример:
Ввод
5
43  50  76  84 100 

Вывод
43 43 50 2 76 2 84 2 100 2

Циклический сдвиг вправо

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов (N<=100) 
Напишите программу, которая осуществляет циклический сдвиг вправо элементов, стоящих на четных местах (нумерация элементов начинается с 0)

Входные данные
В первой строке вводится значение N. Далее во второй строке, вводится N чисел

Выходные данные
Вывести все элементы преобразованного массива.

 

Примеры
Входные данные Выходные данные
1
5
1 2 3 4 5
5 2 1 4 3

Инверсия между двумя элементами

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан одномерный массив размерностью N (2 <= N <= 20). Выполните инверсию элементов находящихся между максимальным и минимальным значениями (максимальное и минимальное значения должны остаться на своих местах).

Входные данные
В первой строке содержится число N - количество элементов массива. Вторая строка содержит значения элементов массива. Все элементы массива различные.

Выходные данные
Необходимо вывести на экран результирующий массив.

 

Примеры
Входные данные Выходные данные
1 4
1 2 3 4
1 3 2 4

Дети в круг

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Анна Николаевна в детском саду играет с детьми в игру. По кругу стоят стулья. Все стулья пронумерованы от 1 до N (1 <= N <= 100000). Имя каждого ребенка закодировано натуральным числом, не превышающим 109. Анна Николаевна хлопает в ладоши раз  (|K| <= 100000) тихо или громко. Если Анна Николаевна хлопает в ладоши тихо, то все дети должны быстро пересесть на K стульев вправо. Если же Анна Николаевна хлопает в ладоши громко, то все дети должны быстро пересесть на K стульев влево. 

Чтобы Анне Николаевна было проще определять все ли дети пересели верно, напишите для нее программу, которая бы определяла положение каждого ребенка после пересаживания. 


В данной задаче нельзя использовать дополнительные массивы (списки). Обратите внимание, что нужно именно преобразовать имеющийся массив(список) и распечатать его целиком, а не создать новый, даже назвав его тем же самым именем (это возможно в языке Python).


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

В первой строке дано натуральное число N, во второй строке N целых чисел, а в последней целое число K. Все числа во входных данных не превышают 109. Если число K > 0, это означает, что Анна Николаевна хлопала в ладоши тихо. Число K < 0, это означает, что Анна  Николаевна хлопала в ладоши громко.


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

Требуется вывести коды детей, которые будут занимать стулья с 1 по N после пересаживания. 

 
Примеры
Входные данные Выходные данные
1
5
5 3 7 4 6
3
7 4 6 5 3 

Удаление элемента массива

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив. Требуется удалить из него элемент, стоящий на месте номер B, сдвинув все последующие элементы влево.
 
Входные данные
Во входном файле записано сначала число N - количество элементов массива (2<=N<=100), затем N чисел из диапазона Integer - элементы массива, а затем число B (1<=B<=N).
 
Выходные данные
В выходной файл выведите N-1 число - элементы массива с удаленным B-м элементом.
 
Примечание
Вы должны удалить элемент непосредственно из массива, а не сделать вид при выводе данных, что у вас такого элемента нет. Также вы не  должны для этого заводить в программе дополнительный массив.
 

Циклический сдвиг влево

Одномерные массивы Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов (N<=100) 
Напишите программу, которая осуществляет циклический сдвиг влево элементов, стоящих на нечетных местах (нумерация элементов начинается с 0).

Входные данные
В первой строке вводится значение N. Далее во второй строке, вводится N чисел

Выходные данные
Вывести все элементы преобразованного массива.

 

Примеры
Входные данные Выходные данные
1
6
1 2 3 4 5 6
1 4 3 6 5 2

Вставка числа

Работа с элементами (вставка, удаление, сдвиг)

Требуется вставить в данный массив на данное место данный элемент, сдвинув остальные элементы вправо.

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

Выходные данные
Вывести получившийся массив.

Добавление элемента массива

Работа с элементами (вставка, удаление, сдвиг)

Дан массив. Требуется вставить в него на место номер B элемент, равный C,
сдвинув все последующие элементы (включая элемент, стоящий на B-ом месте) 
вправо.
 
Входные данные
Во входном файле записано сначала число N - количество элементов массива
(2<=N<=100), затем N чисел из диапазона Integer - элементы массива,
затем число B (1<=B<=N) и число C (из диапазона Integer).
 
Выходные данные
В выходной файл выведите N+1 число - элементы массива с вставленным элементом.
 
Примечание
Вы должны вставить элемент непосредственно в массив, а не сделать
вид при выводе данных, что у вас появился такой элемент. Также вы не 
должны для этого заводить в программе дополнительный массив.
 
 
Пример входного файла
5
1 3 5 6 7
2 10
 
Пример выходного файла
1 10 3 5 6 7
 

15579

Работа с элементами (вставка, удаление, сдвиг) Структуры

Годовые оценки по девяти предметам за 9й класс каждого из N учеников класса напечатаны в виде таблицы (в первой строке - оценки первого ученика, во второй - второго и т.д.) Фамилия ученика записана в первом столбце. в начале нового учеюного года в класс пришел новый ученик. Изменить таблицу так, чтобы  в ней была фамилия и оценки за 9й класс и нового ученика, учитывая, что этот ученик в списке должен быть на s-м месте

Входные данные: на вход программе подаются
в первой число N - количество учеников, 1<=N<=25
далее идут N строк, в формате <фамилия-последовательность латинских символов> <оценка за 1й предмет> <оценка за 2й предмет>...  <оценка за 9й предмет>
в N+1 строке указывается число - номер позиции, куда необходимо вставить запись о новом учащемся
в N+2 строке идет строка в которой указавыются данные нового ученика в виде <фамилия-последовательность латинских символов> <оценка за 1й предмет> <оценка за 2й предмет>...  <оценка за 9й предмет>
 
Выходные данные: вывести исходную таблицу с добавленной на s-е место записью о новом ученике

Примеры

входные данные
2
Ivanov 5 5 5 5 5 5 5 5 5 
Petrov 4 4 4 5 4 5 5 5 5
1
Sidorov 1 1 1 1 1 1 1 1 1 
выходные данные

		
Ivanov 5 5 5 5 5 5 5 5 5
Sidorov 1 1 1 1 1 1 1 1 1
Petrov 4 4 4 5 4 5 5 5 5
 

Вставка элемента перед максимальным

Работа с элементами (вставка, удаление, сдвиг) Алгоритмы обработки

Дан массив из N элементов (\(2<=N<=100\)). Вставить значение a перед всеми элементами равными максимальному значению. 

Входные данные
В первой строке задается число N - количество элементов массива. Вторая строка содержит число a. Третья строка содержит N чисел - значения элементов массива.

Выходные данные
Выведите результирующий массив в одну строку.
 

Примеры
Входные данные Выходные данные
1 5
100
43  50  76  84 100 
43 50 76 84 100 100

Новые ученики. Вставка элементов в массив

Работа с элементами (вставка, удаление, сдвиг) Алгоритмы обработки

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

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

Выходные данные
Выведите результирующий массив в одну строку.
 

Примеры
Входные данные Выходные данные
1 5
160  170
180 175 163 154 150
180 175 170 163 160 154 150

Вставка по условию

Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N положительных элементов, больших 1 (\(2<=N<=100\)). Вставить значение a перед всеми элементами, кратными а.

Входные данные
На входе подаются в первой строке N - число элементов массива. Вторая строка содержит число a. Третья строка содержит N чисел - значения элементов массива.

Выходные данные
Выведите результирующий массив в одну строку.
 

Примеры
Входные данные Выходные данные
1 5
2
43  50  76  84 100 
43 2 50 2 76 2 84 2 100

Удаление элементов

Работа с элементами (вставка, удаление, сдвиг) Одномерные массивы

Дан массив из N элементов (\(2<=N<=15\)). Удалить из него все отрицательные элементы.

Входные данные
В первой строке задается число N - число элементов массива. Вторая строка содержит N чисел - значения элементов массива.

Выходные данные
Выведите результирующий массив в строку.
 

Примеры
Входные данные Выходные данные
1 5
43  -56  76  -84 100
43  76 100

Попарная перестановка

Работа с элементами (вставка, удаление, сдвиг)

Дано число N (\(2<=N<=20\), N-четное) - количество элементов массива. Напишите программу, которая меняет местами попарно элементы заданного массива. То есть первый со вторым, третий  с четвертым и т.д.

Входные данные
В первой строке содержится число N - количество элементов массива. Вторая строка содержит значения элементов массива.

Выходные данные
Необходимо вывести на экран результирующий массив.
 

Пример
Входные данные Выходные данные
1 4
1 2 3 4
2 1 4 3

Перестановка элементов от a до b

Работа с элементами (вставка, удаление, сдвиг)

Дан массив из N элементов (\(2<=N<=15\)). Переставить элементы с номера a по номер b в обратном порядке.

Входные данные
На входе подаются в первой строке N - число, во второй строке два целых числа a и b (\(a<b\)) - индексы элементов, в диапазоне которых необходимо переставить элементы массива. Третья строка содержит N чисел - значения элементов массива.
Нумерация элементов массива начинается с 1.

Выходные данные
Выведите результирующий массив в строку
 

Пример
Входные данные Выходные данные
1 5
2 4
43  56  76  84 100 
43 84 76 56 100