Массивы

716 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Напишите программу, которая в исходном массиве чисел находит самую длинную цепочку, состоящую из одинаковых элементов. Выведите элемент, из которого состоит данная цепочка и длину этой цепочки. Если в массиве есть несколько цепочек максимальной длины, нужно вывести данные по первой из них.

Входные данные
Первая строка содержит размер массива N. Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 3 < N ≤ 10000.

Выходные данные
Выведите элемент, из которого состоит искомая цепочка и длину этой цепочки.
 
Примеры
Входные данные Выходные данные
1 7
1 2 2 1 1 1 3
1 3
Дан упорядоченный по неубыванию список чисел. Определите, сколько в нем различных элементов.

Входные данные
Вводится список чисел. Все числа списка находятся на одной строке. Количество чисел не больше 1000. Каждое число по модулю меньше 2*109.

Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 1 2 2 3 3 3 3
 
Примечание
Для считывания данных на языке С++ используйте цикл
while(cin >> a)
{
  // работа с числом a
}
Считать данные на языке Python можно сразу в массив
A = list(map(int, input().split()))
Петя перешёл в другую школу. На уроке физкультуры дети строятся по росту, начиная с самого высокого. Напишите программу, которая поможет Пете определить свое место в строю.

Входные данные
Программа получает на вход невозрастающую последовательность натуральных чисел, означающих рост каждого учащегося в строю. После этого вводится число x – рост Пети. Все числа во входных данных натуральные и не превышают 200. Количество чисел в последовательности не превышает 200.

Выходные данные
Выведите номер, под которым Петя должен встать в строй. Если в строю есть люди с одинаковым ростом, таким же, как у Пети, то он должен встать после них.
 
Примеры
Входные данные Выходные данные
1 165 163 160 160 157 157 155 154 
162
3
2 165 163 160 160 157 157 155 154 
160
5
 
Примечание
Для считывания данных на языке С++ используйте цикл
while(cin >> a)
{
  // работа с числом a
}
Обратите внимание, на языке С++ такой способ считывания считает сразу все данные из входного потока, включая последнюю строку.

Считать данные на языке Python можно сразу в массив
A = list(map(int, input().split()))
Напишите программу, которая сортирует натуральные числа в массиве по убыванию суммы цифр десятичной записи числа. При равенстве сумм цифр числа должны сохранить исходный порядок.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .

Выходные данные
Программа должна вывести в одной строке элементы массива, отсортированного в порядке убыванию суммы цифр десятичной записи числа, разделив их пробелами.
 
Ввод Вывод
6
9 21 32 55 81 11
55 9 81 32 21 11

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


Входные данные
Сначала задано число N — количество элементов в массиве (1<=N<=100). Далее через пробел записаны N чисел — элементы массива. Массив состоит из целых чисел.
 
Выходные данные
Необходимо вывести количество элементов массива, у которых два соседа и которые при этом строго больше обоих своих соседей.
 
Примеры
Входные данные Выходные данные
1 5
1 2 3 4 5
0
2 5
1 5 1 5 1
2
 

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


Входные данные
Сначала задано число N — количество элементов в массиве (1<=N<=10000). Далее через пробел записаны N чисел — элементы массива. Массив состоит из ненулевых целых чисел, каждое число по модулю не больше 100.

Выходные данные
Необходимо вывести слово YES, если существует пара соседних элементов с одинаковыми знаками. В противном случае следует вывести слово NO.
 
Примеры
Входные данные Выходные данные
1 5
1 -3 4 -2 1
NO
 

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

Входные данные
Сначала задано число N — количество элементов в массиве (1<=N<=10000). Далее через пробел записаны N чисел — элементы массива. Массив состоит из целых чисел.

Выходные данные
Необходимо вывести единственное число - количество элементов массива, больших предыдущего.
 
Примеры
Входные данные Выходные данные
1 5
1 2 3 4 5
4
 
Дан массив из N положительных элементов, больших 1 (2<=N<=100). Вставить значение a перед всеми элементами, кратными а
 
Формат входных данных
На входе подаются в первой строке N - число элементов массива
Вторая строка содержит число a 
Третья строка содержит N чисел - значения элементов массива
Все числа положительные не больше 100.
 
Формат выходных данных
Выведите результирующий массив в строку
 
 
Любимая компьютерная игра Васи называется “Overtouched”. В начале игры на
экране появляются несколько рядов с разноцветными шариками. Игрок нажимает на любой шарик, после чего все шарики такого же цвета удаляются. После удаления все оставшиеся шарики сдвигаются влево так, чтобы в ряду между соседними шариками не оставалось пустых мест, порядок шариков в ряду при этом не изменяется. 
Нужно вывести все оставшиеся шарики.

Формат входных данных:
Вводятся числа n и m (0 <n,m < 1^9999999999 + 11) – количество строк и шариков в каждой строке соответственно. Затем вводится цвет каждого шарика. В следующей строке вводится цвет шариков k, которые нужно удалить.

Формат выходных данных:
Выводятся оставшиеся шарики после удаления.
 
Ввод Вывод
4 3
1 2 3
4 2 2
1 7 6
2 2 2
2
1 3
4
1 7 6
(с) Кабицкий А., 2018г.
При выборе места строительства жилого комплекса при металлургическом комбинате необходимо учитывать "розу ветров" (следует расположить жилой комплекс так, чтобы частота ветра со стороны металлургического комбината была бы минимальной). Для этого в течении года проводилась регистрация направления ветра в районе строительства. Данные представлены в виде массива, в котором направление ветра ветра за каждый день (365) кодируется следующим образом: 
1 - северный (N),
2 - южный (S)
3 - восточный (E)
4 - западный (W)
5 - северо-западный (NW)
6 - северо - восточный (NE)
7 - юго-западный (SW)
8 - юго-восточный (SE).
Определить, как должен быть расположен жилой комплекс по отношению к комбинату

Входные данные: 
В первой строке подается 365 значений от 1 до 8 (направление ветра)

Выходные данные:
Вывести соответствующие буквы (аббревиатуру - смотри список выше), с какой стороны следует построить жилой комплекс
 
В некотором списке записана информация о годе рождения каждого из N человек. Определить наибольший порядковый номер самого младшего по возрасту человека (считая с 1). 

Входные данные
В первой строке задается число N - число человек (0<N<=50). Во второй строке задаются года рождения N человек (N чисел).

Выходные данные
Выведите наибольший номер самого младшего человека.
 
Пример
Входные данные Выходные данные
1 5
1904 1903 1905 1905 1903
4
Имеется информация о времени (в секундах) прохождения трассы 25 спортсменов, участвовавших в лыжной гонке. Выведите результат спортсмена-победителя гонки.

Входные данные
Входная строка содержит 25 чисел, разделенных одним пробелом - время каждого спортсмена.

Выходные данные
Выведите на экран результат спортсмена-победителя гонки. Гарантируется, что победитель гонки единственный.
 
Пример
Входные данные Выходные данные
1 78 35 79 47 104 53 58 86 108 94 90 27 33 88 17 15 37 98 14 67 76 45 94 97 46  14
Хакер Василий получил доступ к классному журналу и хочет заменить все свои минимальные оценки на максимальные. Напишите программу, которая заменяет оценки Василия, но наоборот (все максимальные - на минимальные).
 
Входные данные
Дано количество оценок Василия (не больше 100), затем сами оценки.
 
Выходные данные
Требуется вывести исправленные оценки в том же порядке.

Ввод Вывод
5 1 3 3 3 4 1 3 3 3 1
8 5 4 2 2 4 2 2 5 2 4 2 2 4 2 2 2

Известна информация об N (0<N<=20) учениках класса: фамилия, имя, отчество  и дата рождения (день, месяц, год)
Определить структуру, описывающую информацию об учениках класса.
Вывести количество учеников в классе, у которых сегодня день рождения и их количество

Входные данные: 
В первой строке вводится число N - количество записей
Далее идут N записей в формате (через пробел): <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела> <день рождения - число от 1 до 31> <Месяц рождения - число от 1 до 12> <Год рождения-число>
Далее идет строка с сегодняшней датой в формате  <день - число от 1 до 31> <Месяц - число от 1 до 12> <Год -число>

Выходные данные:
Необходимо вывести на экране в столбик информацию об учениках, у которых сегоня день рождения.
Формат вывода 
 <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела>
Фамилии выводить в порядке следования исходных данных
Далее после списка учеников вывести одно число - количество учеников
Известна информация об N (0<N<=100) сотрудниках фирмы: фамилия, имя, отчество, адрес и дата поступления на работу (месяц, год)
Написать программу, организующую ввод исходных данных в структуру и вывести на экран фамилию, имя и адрес сотрудников, которые на сегодняшний день проработали в фирме не менее Z лет

Входные данные: 
В первой строке вводится число N - количество записей
Далее идут N записей в формате (через пробел): <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела> <Адрес-слово без пробела> <Месяц поступления - число от 1 до 12> <Год поступления-число>
Далее идет строка с сегодняшней датой в формате  <Месяц - число от 1 до 12> <Год -число>
Далее идет значение Z (0<Z<=10) - количество проработанных лет

Выходные данные:
Необходимо вывести на экране в столбик информацию о сотрудниках, проработавших в фирме не менее Z лет.
Формат вывода 
 <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела> <Адрес-слово без пробела> 
Фамилии выводить в порядке следования исходных данных
Известны максимальные скорости 20-ти моделей автомобилей. Все значения выражены в км/ч.
Написать программу, которая организовывает ввод исходных данных в структуру и выводит названия моделей автомобилей с самой маленькой и самой большой максимальной скоростью

Входные данные: 
20 строк в формате <Марка автомобиля> <Максимальная скорость>


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

Входные данные: 
в первой строке задается название страны
далее идут 26 строк в формате <Страна> <Город>


Выходные данные:
Необходимо вывести все города, которые находятся в стране, указанной в первой строке входных данных.
Каждый город выводить с новой строки
Сразу после списка городов вывести их количество (одно целое число)
На пронумерованных N стульях за круглым столом в зале заседаний сидят толстяки, вес каждого известен. Каждый час они пересаживаются по кругу вправо на один стул. Напишите программу, которая определяет какой из толстяков будет сидеть на каждом стуле через R часов. 

Входные данные
В первой строке вводится значение N - натуральное число (\(N<=100\)). Во второй строке, вводится N чисел - вес толстяков (от 90 до 150). В третьей строке вводится натуральное число R (\(0<=R<=100\)).

Выходные данные
Вывести в первой строке исходное положение толстяков (их вес, начиная с сидящего на первом стуле):
before: вес толстяков 
Во второй строке вывести положение толстяков через R часов:
after: вес толстяков 
 
Примеры
Входные данные Выходные данные
1
5
98 127 139 141 107 
3
before: 98 127 139 141 107 
after: 139 141 107 98 127 
В фирме, выпускающей компьютерные комплектующие, все изделия получают последовательные номера от 1 до N. Каждое изделие после его изготовления поступает в отдел контроля качества, где оно проверяется, и либо уходит в продажу, либо заносится в список бракованных изделий и списывается. К сожалению, список бракованных изделий иногда оказывается чересчур длинным. Тогда для его сокращения подряд идущие числа заменяются интервалом: через тире указываются номера первого и последнего изделия интервала.
Например, вместо 
1,3,4,5,6,7,8,10,12,16,17,20,21,22,23,24
записывается
1,3-8,10,12,16-17,20-24
 
Напишите программу, которая по полному списку номеров бракованных изделий выдаст этот список в сокращенном виде.
 
Входные данные
В первой строке вводится сначала число N - общее количество изделий, затем число M - количество изделий, оказавшихся бракованными. Во второй строке вводятся в возрастающем порядке номера бракованных изделий. 
 
Выходные данные
Выведите в одной строке список номеров бракованных изделий в сокращенном виде. Интервалы должны разделяться запятой. В строке не должно быть пробелов.
 
Ограничения
1<=M<=N<=1000000.
 
Примеры
Входные данные Выходные данные
1
10 5 
1 3 5 7 9
1,3,5,7,9
2
40 16
1 3 4 5 6 7 8 10 12 16 17 20 21 22 23 24
1,3-8,10,12,16-17,20-24
3
11 11
1 2 3 4 5 6 7 8 9 10 11
1-11
4
10000 1 
5
5
Даны два массива чисел. Требуется вывести те элементы первого массива (в том порядке, в каком они идут в первом массиве), которых нет во втором массиве.
 
Входные данные
В первой строке ввода записано число N - количество элементов в первом массиве. Во второй строке  - N чисел (элементы массива). В третьей строке записано число M - количество элементов во втором массиве. В четвертой строке  - элементы второго массива.
Количество элементов каждого массива не превышает 100. Сами элементы по модулю не превышают 1000. Все числа целые.
 
Выходные данные
Выведите те элементы первого массива, которых нет во втором.Элементы необходимо вывести в том порядке, в каком они идут в первом массиве.
 
Примеры
Входные данные Выходные данные
1
7
3 1 3 4 2 4 12
6
4 15 43 1 15 1
3 3 2 12
 
Поделиться
Класснуть