2025/26, Кружок для начинающих, Задачи на массивы

A: Линейный поиск

Напишите программу, которая определяет, сколько раз встречается заданное число \(x\) в данном массиве.

Формат входных данных

В первой строке задается одно натуральное число \(N\), не превосходящее 1000 — размер массива.

Во второй строке вводятся \(N\) чисел — элементы массива (целые числа, не превосходящие по модулю 1000).

В третьей строке содержится одно целое число \(x\), не превосходящее по модулю 1000.

Формат выходных данных

Вывести одно число — сколько раз встречается \(x\) в данном массиве.

Пример

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

B: Ближайшее число

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

Формат входных данных

В первой строке задается одно натуральное число \(N\), не превосходящее 1000 — размер массива.

Во второй строке вводятся \(N\) чисел — элементы массива (целые числа, не превосходящие по модулю 1000).

В третьей строке содержится одно целое число \(x\), не превосходящее по модулю 1000.

Формат выходных данных

Вывести значение элемента массива, ближайшее к \(x\). Если таких чисел несколько, выведите любое из них.

Примеры

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

C: Шеренга

Петя перешёл в другую школу. На уроке физкультуры ему понадобилось определить своё место в строю. Помогите ему это сделать.

Формат входных данных

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

Формат выходных данных

Выведите номер, под которым Петя должен встать в строй. Если в строю есть люди с одинаковым ростом, таким же, как у Пети, то он должен встать после них.

Примеры

ВводВывод
165 163 160 160 157 157 155 154 
162
3
165 163 160 160 157 157 155 154 
160
5

D: Количество различных элементов в монотонном массиве

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

Формат входных данных

Сначала задано число \(N\) — количество элементов в массиве (\(1 \le N \le 100\)). Далее через пробел записаны \(N\) чисел — элементы массива. Массив состоит из целых чисел, находящихся в пределах от \(-2^{31}\) до \(2^{31}-1\)

Формат выходных данных

Необходимо вывести единственное число - количество различных чисел в массиве.

Примеры

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

E: Серебряная медаль

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

Для решения данной задачи массив лучше не использовать.

Формат входных данных

На первой строке дано число \(N\) (\(2 \le N \le 1000\)) количество спортсменов, участвовавших в соревнованиях, на второй N целых чисел – результаты через пробел.

Формат выходных данных

Требуется вывести одно число – результат Василия

Примеры

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

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

Напишите программу, которая циклически сдвигает элементы массива вправо (например, если элементы нумеруются, начиная с нуля, то 0-й элемент становится 1-м, 1-й становится 2-м, ..., последний становится 0-м, то есть массив {3, 5, 7, 9} превращается в массив {9, 3, 5, 7}).

Формат входных данных

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

Формат выходных данных

Необходимо вывести массив, полученный после сдвига элементов.

Пример

ВводВывод
6
4 5 3 4 2 3
3 4 5 3 4 2

G: Суперсдвиг

Дана последовательность из \(N\) \((1 \le N \le 100000)\) целых чисел и число \(K\) \((|K| \le 100000)\). Сдвинуть всю последовательность (сдвиг - циклический) на \(|K|\) элементов вправо, если \(K\) – положительное и влево, если отрицательное.

Формат входных данных

В первой строке дано натуральное число \(N\), во второй строке \(N\) целых чисел, а в последней целое число \(K\). Все числа во входных данных не превышают \(10^9\).

Формат выходных данных

Требуется вывести полученную последовательность.

Пример

ВводВывод
5
5 3 7 4 6
3
7 4 6 5 3

H: Треугольник Паскаля

Даны два числа \(N\) и \(M\). Создайте двумерный массив \(N \times M\) и заполните его по следующим правилам: Числа, стоящие в строке 0 или в столбце 0 равны 1 \((A[0][j]=1, A[i][0]=1)\). Для всех остальных элементов массива \(A[i][j]=A[i-1][j]+A[i][j-1]\), то есть каждый элемент равен сумме двух элементов, стоящих слева и сверху от него.

Формат входных данных

Программа получает на вход два числа \(N\) и \(M\).

Формат выходных данных

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

Пример

ВводВывод
3 3
1 1 1
1 2 3
1 3 6

I: Заполнение спиралью

Дано число \(N\). Создайте массив \(A[2*n+1][2*n+1]\) и заполните его по спирали, начиная с числа \(0\) в центральной клетке \(A[n+1][n+1]\). Спираль выходит вверх, далее закручивается против часовой стрелки.

Формат входных данных

Программа получает на вход одно число \(N\).

Формат выходных данных

Программа должна вывести  полученный массив, отводя на вывод каждого числа ровно 3 символа.

Пример

ВводВывод
2
12 11 10  9 24
 13  2  1  8 23
 14  3  0  7 22
 15  4  5  6 21
 16 17 18 19 20

J: Переворот

Дан массив \(N \times M\). Требуется повернуть его по часовой стрелке на 90 градусов.

Формат входных данных

На первой строке даны натуральные числа \(N\) и \(M\) \((1 \le N, M \le 50)\). На следующих \(N\) строках записано по \(M\) неотрицательных чисел, не превышающих \(10^9\) – сам массив.

Формат выходных данных

Выведите повернутый массив в формате входных данных.

Пример

ВводВывод
3 4
1  2  3  4
5  6  7  8
9  10 11 12
4 3
9 5 1 
10 6 2 
11 7 3 
12 8 4

K: Седловые точки

Задана матрица \(K\), содержащая \(n\) строк и \(m\) столбцов. Седловой точкой этой матрицы назовем элемент, который одновременно является минимумом в своей строке и максимумом в своем столбце.

Найдите количество седловых точек заданной матрицы.

Формат входных данных

Первая строка содержит целые числа \(n\) и \(m\) \((1 \le n, m \le 750)\). Далее следуют \(n\) строк по \(m\) чисел в каждой.

\(j\)-ое число \(i\)-ой строки равноa \(k_{ij}\). Все \(k_{ij}\) по модулю не превосходят \(1000\).

Формат выходных данных

Выведите ответ на задачу.

Примеры

ВводВывод
2 2
0 0
0 0
4
2 2
1 2
3 4
1