Массивы

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

Входные данные: 
в первой строке задается слово, состоящее из 4х и более букв.

Выходные данные:
необходимо вывести буквосочетание, состоящее из его третьего и последнего символа

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 privet it

Дано слово. Получить и вывести на экран буквосочетание, состоящее из его второго и четвертого символа

Входные данные: 
в первой строке задается слово, состоящее из 4 и более символов

Выходные данные:
необходимо вывести на буквосочетание, состоящее из его второго и четвертого символа

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 privet rv

Даны два слова. Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово?

Входные данные: 
в первой строке задается первое слово
во второй строке задается второе слово

Выходные данные:
необходимо вывести на экран словой Yes, если первое слово начивается на ту же букву, на которое заканчивается второе слово, в противном случем вывести на экран слово No

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 privet
mama
NO
2 mama
mom
YES

Дано слово. Вывести на экран его k-й символ.

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

Выходные данные:
необходимо вывести на экран символ стоящий в позиции с индексом k (считать нумерацию с 1) 

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 privet
2
r

Однажды царь решил вознаградить одного из своих мудрецов за хорошую работу. Он привел его в прямоугольную комнату размром NxM, в каждой клетке которой лежало несколько килограммов золота. Царь разрешил мудрецу сделать обойти несколько клеток (переходя с клетки, где сейчас находится мудрец, в одну из четырех с ней соседних), и собрать все золото, которое попадется на его пути.
Мудрецу разрешено более одного раза проходить по одной и той же клетке. Золото с нее он берет при этом  только один раз - когда проходит по клетке в первый раз.

Вам дан маршрут мудреца. Требуется определить, сколько килограммов золота он собрал.

Входные данные
Входные данные содержат план комнаты и маршрут мудреца. Сначала записано количество строк N, затем - количество столбцов M (1<=N<=20,1<=M<=20).
Затем записано N строк по M чисел в каждой - количество килограммов золота, которое лежит в данной клетке (число от 0 до 50).
Далее записано число X - сколько клеток обошел мудрец (1<=X<=10000).
Известно, что мудрец начал с клетки с координатами (1, 1). Далее записано X-1 число: куда перемещался мудрец:
  • число 1 обозначает, что мудрец делал шаг вправо,
  • число 2 обозначает, что мудрец делал шаг вверх,
  • число 3 обозначает, что мудрец делал шаг влево,
  • число 4 обозначает, что мудрец делал шаг вниз.
 
Известно, что мудрец не выходил из лабиринта, при этом он мог через одну и ту же клетку пройти несколько раз. 

Выходные данные
В выходной файл выведите количество килограммов золота, которое собрал мудрец.
 
Примеры
Входные данные Выходные данные
1
3 4
1 2 3 4
5 6 7 8
9 10 11 12
9
4 1 1 2 3 3 1 4
24
 
 
В матрице найти номер строки, сумма чисел в которой максимальна.
 
Входные данные
Во входном файле записаны числа N и M - количество строк и столбцов матрицы (каждое из них - из диапазона от 1 до 100), 
а затем сама матрица. Элементы матрицы - числа из целые числа, по модулю не превышающие 106.
 
Выходные данные
В выходной файл вывести номер строки,  сумма чисел в которой максимальна. Если таких строк несколько, 
вывести первую из них.
 
В массиве требуется найти минимальный элемент, и поставить его  на первое место, а то, что стояло на 1-м месте - на его место.
Если минимальных чисел несколько, то надо менять с первым из них.  Если минимальное число уже стоит на 1-м месте, ничего изменять не нужно.
 
Входные данные
Вводится число N - количество элементов массива (1<=N<=100),  а затем - элементы массива (числа от 1 до 10000). 
 
Выходные данные
Требуется вывести N чисел - элементы массива после перестановки.
 
Примеры
Входные данные Выходные данные
1
5
3 5 4 1 4
1 5 4 3 4
 
Даны два слова. Определить, можно ли из букв первого из них получить второе. Каждая буква второго слова должна входить в первое слово столько же раз, сколько и во второе.
 
Примеры
Входные данные Выходные данные
1
informacia forma
YES
2
informacia moloko
NO
Даны два слова. Напечатать только те буквы слов, которые встречаются в обоих словах только один раз. Порядок вывода букв должен соответствовать порядку их встречаемости в словах.

 
Примеры
Входные данные Выходные данные
1
processor informacia
penfm
Дано предложение. Вывести слово YES, если предложение является палиндромом (после удаления всех пробелов) и NO - в противном случае.
 
Примеры
Входные данные Выходные данные
1
A ROZA UPALA NA LAPU AZORA
YES
2
POT KAK POTOP
NO

Вам даны n чисел a1, a2, ..., an. Найдите наименьшее целое положительное число x, не содержащееся в множестве {a1, ..., an}, то есть, такое, что не существует i, для которого верно ai = x.

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

В первой строке записано целое число n (1 ≤ n ≤ 105) — количество чисел. Во второй строке через пробел записаны n чисел: a1, ..., an (1 ≤ ai ≤ 109).

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

Выведите наименьшее целое положительное x не содержащееся в множестве {a1, ..., an}.

Примеры тестов

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

5
1 2 3 4 5
Выходные данные
6
Входные данные
5
1 3 4 5 6
Выходные данные
2

 

Примечание

Тесты разделены на группы, но оцениваются отдельно

  • n = 1 — 10 баллов
  • n ≤ 100 — 20 баллов
  • ai ≤ 106 — 30 баллов
  • Без дополнительных ограничений.

Так, если вы решили задачу для n ≤ 100, то вы получите 30 баллов за первую и вторую группы, если вы решили задачу для ai ≤ 106, то вы получите 30 баллов за третью группу. Если ваша программа будет работать в обоих случаях, то вы получите 60 баллов. За полное решение вы получите 100 баллов.


Дмитрий работает биологом и недавно открыл новый вид бактерий, которые живут в необычных условиях — в таблицах размером 10 на 10 ячеек. Табличные бактерии состоят из нескольких живых клеток. Дмитрий вычислил, что бактерия существует по следующим правилам:

  • Если какая-то клетка бактерии имеет двух или трёх живых соседей, то в следующий момент времени она остаётся жить.
  • Если какая-то клетка бактерии имеет менее двух живых соседей, то в следующий момент времени она умирает от одиночества и становится пустой ячейкой.
  • Если какая-то клетка бактерии имеет более трёх живых соседей, то в следующий момент времени она умирает от перенаселения и становится пустой ячейкой.
  • Если у пустой ячейки таблицы имеется ровно три живых клетки-соседа, то в следующий момент времени в ней зарождается живая клетка.
Соседями ячейки являются ближайшие ячейки по горизонтали (справа и слева), по вертикали (снизу и сверху), а также по четырём диагоналям. Таким образом, у ячейки может быть максимум 8 соседей.

 

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

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

Ввод состоит из 10-ти строк. Каждая строка содержит в себе 10 символов. Символ '#' означает, что в соответствующей ячейки находится живая клетка бактерии, а символ '.' означает, что ячейка пуста.

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

Необходимо вывести таблицу 10 на 10 — изображение бактерии в следующий момент времени.

Напишите функцию, вычисляющую сумму делителей числа

Используя данную функцию, напишите программу, которая среди n натуральных чисел, вводимых с клавиатуры, выводит на экран число с максимальным суммой делителей
Входные данные:
в первой строке вводится число n - количестве чисел (n<=100),
далее идут n строк по одному натуральному числу в строке
Выходные данные:
программа должна вывести одно  число, в котором сумма делителей числа максимальна среди всех чисел, если таких чисел несколько, то необходимо вывести число, которое встретилось в последовательности раньше

Количество баллов за задачу уточняется после ручной проверки (и будет снижено, в случае если вы не используете функцию!).
 

Пример

Ввод

Вывод

5
2
5
59
72
34
72
2
78
81
78
 
Напишите функцию, вычисляющую количество делителей числа

Используя данную функцию, напишите программу, которая среди n натуральных чисел, вводимых с клавиатуры, выводит на экран число с максимальным количеством делителей
Входные данные:
в первой строке вводится число n - количестве чисел (n<=100),
далее идут n строк по одному натуральному числу в строке
Выходные данные:
программа должна вывести одно  число, в котором количество делителей максимально среди всех чисел, если таких чисел несколько, то необходимо вывести число, которое встретилось в последовательности раньше

Количество баллов за задачу уточняется после ручной проверки (и будет снижено, в случае если вы не используете функцию!).

Пример

Ввод

Вывод

5
22790
94
66
18
18
22790
2
21
46 
21
 
Напишите функцию, вычисляющую первую цифру числа

Используя данную функцию, напишите программу, которая среди n натуральных чисел, вводимых с клавиатуры, выводит на экран число с максимальной первой цифрой
Входные данные:
в первой строке вводится число n - количестве чисел (n<=100)
далее идут n строк по одному натуральному числу в строке
Выходные данные:
программа должна вывести одно  число, у которого первая цифра максимальна среди всех чисел, если таких чисел несколько, то необходимо вывести число, которое встретилось в последовательности раньше

Количество баллов за задачу уточняется после ручной проверки (и будет снижено, в случае если вы не используете функцию!).
 

Пример

Ввод

Вывод

5
43
22
11
56
10
56
2
14
22
22
 
Напишите функцию, вычисляющую сумму цифр числа

Используя данную функцию, напишите программу, которая среди n натуральных чисел, вводимых с клавиатуры, выводит на экран число с максимальной суммой цифр
Входные данные:
в первой строке вводится число n - количестве чисел (n<=100),
далее идут n строк по одному натуральному числу в строке
Выходные данные:
программа должна вывести одно  число, в котором сумма цифр максимальна среди всех чисел

Количество баллов за задачу уточняется после ручной проверки (и будет снижено, в случае если вы не используете функцию!).
 

Пример

Ввод

Вывод

5
43
22
11
56
10
56
2
34
12
34
Пете и Васе стало очень скучно на уроке биологии, и они решили поиграть в любимую всеми школьниками игру в крестики-нолики до пяти в ряд на бесконечном поле.
Рассмотрим кратко правила игры. Игра происходит на бесконечном клетчатом поле, два игрока делают ходы по очереди, первый игрок ходит крестиками, а второй — ноликами. В свой ход игрок
выбирает свободную клетку поля и ставит туда свой символ. Если после хода очередного игрока на поле есть пять его символов подряд по вертикали, горизонтали или диагонали, то сделавший такой ход игрок объявляется победителем и игра заканчивается.
Петя и Вася уже довольно долго играют в игру. Сейчас должен ходить Петя, который играет крестиками. Петя надеется побыстрее завершить игру и хочет выиграть не более чем за два, а лучше
за один ход. Петя называет ход оптимальным, если для этого хода выполнено одно из двух:
• этот ход приводит к немедленной победе Пети;
• не существует хода, который приводит к немедленной победе Пети, но если Петя сделает этот ход, то Вася не выиграет следующим ходом и, вне зависимости от ответного хода Васи, у Пети
будет следующий ход, который приведет к его немедленной победе.
Помогите Пете найти количество оптимальных ходов.
Формат входных данных
В первой входного файла находятся два натуральных числа n, m (1 ≤ n,m ≤ 200) — размеры прямоугольника, содержащего все уже поставленные на поле крестики и нолики.
Следующие n строк содержат по m символов, каждый из которых равен одному из следующих:
«.» (точка), «X» (заглавная латинская буква «икс») или «0» (ноль). При этом «.» обозначает пустую клетку, «X» обозначает крестик, а «0» обозначает нолик. Гарантируется, что на поле находится
равное число крестиков и ноликов, и ни один игрок еще не одержал победу.
Формат выходных данных
Выведите одно число — количество оптимальных ходов Пети.
 
Примеры
Входные данные Выходные данные
1
5 3
...
000
XXX
...
...
2
2
4 4
..0.
.XX0
.0X.
....
0
3
5 6
......
.XXX..
.0000.
..X...
......
0
 
Однажды царь решил вознаградить одного из своих мудрецов за хорошую работу. Он привел его в прямоугольную комнату размром NxM, в каждой клетке которой лежало несколько килограммов золота. Царь разрешил мудрецу сделать обойти несколько клеток (переходя с клетки, где сейчас находится мудрец, в одну из четырех с ней соседних), и собрать все золото, которое попадется на его пути.
Мудрецу разрешено более одного раза проходить по одной и той же клетке. Золото с нее он берет при этом  только один раз - когда проходит по клетке в первый раз.

Вам дан маршрут мудреца. Требуется определить, сколько килограммов золота он собрал.

Входные данные
Входные данные содержат план комнаты и маршрут мудреца. Сначала записано количество строк N, затем - количество столбцов M (1<=N<=20,1<=M<=20).
Затем записано N строк по M чисел в каждой - количество килограммов золота, которое лежит в данной клетке (число от 0 до 50).
Далее записано число X - сколько клеток обошел мудрец. Далее записаны координаты этих клеток (координаты клетки - это два числа: первое определяет номер строки, второе - номер столбца, верхняя левая клетка на плане имеет координаты (1,1), правая нижняя - (N,M)). 
Число пройденных мудрецом клеток не превышает 10000.

Выходные данные
В выходной файл выведите количество килограммов золота, которое собрал мудрец.
 
Примеры
Входные данные Выходные данные
1
3 4
1 2 3 4
5 6 7 8
9 10 11 12
9
1 1
2 1
2 2
2 3
1 3
1 2
1 1
1 2
2 2
24

 
Однажды царь решил вознаградить одного из своих мудрецов за хорошую работу. Он привел его в прямоугольную комнату размром NxM, в каждой клетке которой лежало несколько килограммов золота. Царь разрешил мудрецу сделать обойти несколько клеток (переходя с клетки, где сейчас находится мудрец, в одну из четырех с ней соседних), и собрать все золото, которое попадется на его пути.
 
Вам дан маршрут мудреца. Требуется определить, сколько килограммов золота он собрал.
 
Входные данные
Входные данные содержат план комнаты и маршрут мудреца. Сначала записано количество строк N, затем - количество столбцов M (1<=N<=20,1<=M<=20).
Затем записано N строк по M чисел в каждой - количество килограммов золота, которое лежит в данной клетке (число от 0 до 50).
Далее записано число X - сколько клеток обошел мудрец. Далее записаны координаты этих клеток (координаты клетки - это два числа: первое определяет номер строки, второе - номер столбца, верхняя левая клетка на плане имеет координаты (1,1), правая нижняя - (N,M)).
Гарантируется, что мудрец не проходил по одной и той же клетке дважды.
 
Выходные данные
В выходной файл выведите количество килограммов золота, которое собрал мудрец.
 
Примеры
Входные данные Выходные данные
1
3 4
1 2 3 4
5 6 7 8
9 10 11 12
5
1 1
2 1
2 2
2 3
1 3
22
 
Поделиться
Класснуть