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

269 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Антон Б., суперспособный ученик 8 класса, обладает неудивительными математическими способностями. Побывав однажды на экскурсии в Колоколамске, он понял, что легко может написать программу, которая бы предсказывала стоимость его любимых конфет на любой промежуток дней вперед. 
Используя эту программу, Антон Б. решил  приобрести на все свои карманные деньги конфеты (а их у него было всего 10 рублей), затем, чуть позже, продать все купленные им конфеты. Таким образом, Антон Б. хочет заработать как можно больше денег на новый ноутбук. 
Так как  Антон Б. еще несовершеннолетний и один ездить в другие города не может, ему нужно понять, в какие из двух дней попросить старшего брата отвезти его в Колоколамск. Старший брат совершеннолетний и очень любит своего младшего брата, поэтому всегда готов ему помочь.
Так как Антон Б. очень торопится на кружок по информатике, он просит вас определить эти два дня в ближайшие N дней. 

Входные данные
В первой строке записано число N (2 <= N <= 100000) количество дней, на которые Антон Б. делает прогноз. Вторая строка содержит целых положительных чисел ai (1 <= i <= , 1 <= ai <=  5000 ), где ai - предсказанная стоимость конфет в i-й день.

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

Выведите два числа: первое число - номер дня, в который Антон Б. поедет покупать конфеты, второе - номер дня, в который он поедет продавать конфеты. В случае, если таких вариантов дней несколько, выведите любой из них. Если Антон Б. в итоге не сможет получить прибыль ни при каких вариантах, то выведите два нуля.

 
Примеры
Входные данные Выходные данные
1
6
10 3 5 3 11 9
2 5 
2
4
5 5 5 5
0 0
С востока на запад простираются горы, а на западе - океан. На вершине каждой горы есть отель. Вы хотите выбрать, в каком отеле остановиться. Высота i-й горы с запада равна Hi. Вы, конечно, можете увидеть океан из отеля, который расположен на вершине самой западной горы. Для отеля на вершине i-й горы с запада (i = 2, 3, ..., N) вы сможете увидеть океан тогда и только тогда, когда H1<=HiH2<=Hi, ... и Hi-1<=Hi. Посчитайте, со скольких из этих отелей вы сможете увидеть океан?

Входные данные
В первой строке записано натуральное число N (1 <= N <= 20) - количество гор. Вторая строка содержит N чисел Hi (1 <= Hi <= 100) высоты гор, начиная с самой западной (первой).


Выходные данные
Выведите количество отелей, из которых вы сможете увидеть океан.
 
 
Примеры
Входные данные Выходные данные
1
4
6 5 6 8
3
2
5
4 5 3 5 4
3
3
5
9 5 6 8 4
1

Анна Николаевна в детском саду играет с детьми в игру. По кругу стоят стулья. Все стулья пронумерованы от 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 

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


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

Сначала задано число N - количество элементов в массиве (1 <= N <= 100). Далее через пробел записаны N чисел - элементы массива. Массив состоит из целых чисел, находящихся в пределах от -231 до 231


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

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

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

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


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

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


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

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

 
Примеры
Входные данные Выходные данные
1
5
1 2 3 4 5
0
2
5
2 3 2 4 3
2
В колоде у Громозеки находятся карты, на которых написано по одному целому числу. Каждое число в колоде встречается ровно 4 раза. 
Таким образом, в колоде имеются 4 карты с числом 1, 4 карты с числом 2, ..., 4 карты с числом N. Всего в колоде 4*N карт.

Громозека перетасовал эти карты, а затем спрятал одну из них и дал вам стопку оставшихся 4*N-1 карт. На i-й карте (1<= i <=4*N−1) из стопки написано целое число Ai.

Найдите целое число, записанное на карте, которую спрятал Громозека.

Входные данные
Программа получает на вход две строки. Первая строка содержит целое число N (1 <= N <= 105).  Вторая строка содержит 4*N-1 целых чисел Ai (1 <= Ai <= 4*N−1. 1<= i <=4*N−1). Для каждого (1<=k<=N) существует не более 4 индексов i, таких, что Ai=k.


Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 3
1 3 2 3 3 2 2 1 1 1 2
3
2 1
1 1 1
1
3 4
3 2 1 1 2 4 4 4 4 3 1 3 2 1 3
2
Фермер Джон упорядочил N своих коров (1 ≤ N ≤ 1000) каждая из которых имеет одну из двух пород Holsteins или Guernseys. Он зафиксировал этот порядок в виде строки из N символов, каждый из которых либо H, либо G соответственно. К несчастью, когда коровы прибыли на ферму и он снова их выстроил, они образовали строку, отличную от исходной.

Назовём эти две строки A и B, где A - исходная строка, которую он хотел увидеть, B - строка которая получилась по прибытию коров. ФД попросил помощи у кузена Бена.

После нескольких месяцев работы, Бен создал замечательную машину MCBF-3000, которая способна взять любую подстроку и поменять в ней все G на H, а все H на G. Теперь ФД хочет узнать минимальное количество применений этой машины, которые позволят превратить строку B в строку A. Помогите ФД.

Входные данные
Первая строка содержит N, а следующие две строки содержат строки A и B. Каждая из строк состоит только из символов H и G.
Выходные данные
Выведите минимальное количество раз применения машины MCBF-3000 для трансформации строки B в строку A.
Примеры
Входные данные Выходные данные
1
7
GHHHGHH
HHGGGHH
2
Алиса и Громозека пошли гулять по городу. Заходя в первое кафе, Алиса посмотрела на часы и запомнила время входа. Далее она запоминала только количество минут, которое они с Громозекой тратили между двумя посещенными кафе (от входа в одно кафе, до входа в другое). По окончании прогулки, Алиса решила восстановить хронологию - время входа в очередное кафе.
Напишите программу, которая определит, в какое время Алиса и Громозека заходили в очередное кафе. 

Входные данные
В первой строке задан, момент времени, в который Громозека и Алиса вошли в первое кафе. Формат времени: часы (число от 00 до 23), далее идет двоеточие, затем минуты (число от 00 до 59). Строка времени записана без пробелов.
Во второй строке записано натуральное число N (2 <= N <= 1000) - количество посещенных кафе (включая кафе из которого они вышли в начальный момент времени и последнее кафе). В третьей строке записано N-1 число: первое показывает время в минутах от входа в первое кафе до входа во второе, второе - время от входа во второе кафе до входа в третье и т.д. Каждое из этих чисел натуральное и не превышает 1000.

Выходные данные
Выведите для каждого кафе время входа Алисы и Громозеки. Формат времени должен быть такой же, как и во входных данных.
 
Примеры
Входные данные Выходные данные
1 07:00
4
10 5 3
07:00
07:10
07:15
07:18
Есть N частей некоторого исходного кода. Характеристики i-й части кода представлены M целыми числами Ai1, Ai2, ..., AiM . Вам даны целые числа B1, B2, ..., BM и C.
i-я часть кода правильно решает задачу тогда и только тогда, когда \( A_{i1}\cdot B_1 + A_{i2}\cdot B_2 + ...+ A_{iM}\cdot B_M +C>0\).
Среди N частей исходного кода найдите количество, которые правильно решают эту задачу.

Входные данные
В первой строке заданы три числа через пробел: N, M (1 <= N, M <= 20) и C (-100 <= C <= 100). Во второй строке задано  M чисел Bi (-100 <= B<= 100). Каждая из следующих N строк содержит чисел Ai (-100 <= Aij <= 100, 1 <= i <= N, 1 <= j <= M).

Выходные данные
Выведите одно число - ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 2 3 -10
1 2 3
3 2 1
1 2 2
1
2 5 2 -4
-2 5
100 41
100 40
-3 0
-6 -2
18 -13
2
3 3 3 0
100 -100 0
0 100 100
100 100 100
-100 100 100
0
Громозека имеет последовательность целых чисел A длины N. Он свободно выбирает целое число b. Здесь ему станет грустно, если Ai и b+i находятся далеко друг от друга. Точнее, печаль Громозеки рассчитывается следующим образом:
\(abs(A_1-(b+1))+abs(A_2-(b+2))+...+abs(A_N-(b+N))\).
Здесь \(abs(x) \)- это функция, которая возвращает абсолютное значение x. Найдите минимально возможную печаль Громозеки.

Входные данные
В первой строке записано целое число N  (\(1<=N<=2 \cdot 10^5\)). Во второй строке записано N целых чисел Ai (\(1<=A_i<=10^9\)).

Выходные данные
Выведите на экран минимально возможную печаль Громозеки.
 
Примеры
Входные данные Выходные данные Пояснение
1 5
2 2 3 5 5
2 Если мы выберем b = 0, печаль Громозеки будет \(\) 
abs (2- (0 + 1)) + abs (2-(0 + 2))+ abs (3-(0 + 3)) + abs (5- (0 + 4)) + abs(5-(0 + 5)) = 2.
Любой другой выбор b не делает печаль Громозеки меньше 2, поэтому ответ - 2.
2 9
1 2 3 4 5 6 7 8 9
0  
3 6
6 5 4 3 2 1
18  
4 7
1 1 1 1 2 3 4
6  
Международный банк Либанк имеет N отделений по всему миру. После окончания пандемии короновируса, финансовый отдел банка решил проверить отчетность всех отделений. Выяснилось, что некоторые отделения остались в долгу, а некоторые даже успели получить прибыль. Теперь финансовые директора решили спасти все отделения с минимальным одинаковым долгом. Они хотят понять, можно ли покрыть все их долги, если использовать средства всех отделений с минимальной одинаковой прибылью. Вам как сотруднику IT отдела было выдано данное задание. Финансовые директора ждут от вас ответа!

Входные данные
В первой строке задается число N (2<=N<=500) - количество отделений Либанка. Во второй строке записаны N чисел a(-1000<=ai<=1000, 0<=i<N) - положительными числами обозначены прибыли отделений, отрицательными - долги. Известно, что хотя бы одно отделение Либанка получило прибыль и хотя бы одно отделение осталось в долгу.

Выходные данные
Если все указанные отделения можно спасти, выведите на экран сумму, которая останется после покрытия всех долгов отделений с минимальным одинаковым долгом. Если спасти нельзя выведите отрицательное число, показывающая сколько денег не хватает.
 
Примеры
Входные данные Выходные данные
1 10
-1 4 -10 0 -8 -1 -8 8 -2 8 
2
Сергей Николаевич любит заниматься статистикой. В его распоряжение попался список роста всех учащихся лицея. К его огорчению все данные были записаны в произвольном порядке и к тому же занимали несколько страниц. Сергей Николаевич хочет определить сколько учащихся имеют такой же рост, как у самого высокого ученика, а также сколько учащихся имеют такой же рост, как у самого низкого ученика. Сергей Николаевич попросил вас написать для него программу, решающую данную задачу.

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

Выходные данные
Выведите на экран два числа в одной строке через пробел: сколько учащихся имеют такой же рост, как у самого высокого ученика, а также сколько учащихся имеют такой же рост, как у самого низкого ученика.
 
Примеры
Входные данные Выходные данные
1
10
212 107 165 205 122 116 177 212 107 212
3 2
Сергей Николаевич любит заниматься статистикой. В его распоряжение попался список роста всех учащихся лицея. К его огорчению все данные были записаны в произвольном порядке и к тому же занимали несколько страниц. Узнав рост самого высокого и самого низкого из учащихся, Сергей Николаевич стал искать эти данные по списку. На чтение одной записи у него уходит 1 миллисекунда. Определить сколько миллисекунд понадобится Сергею Николаевичу, чтобы найти записи о самом высоком и самом низком учениках. Если таких учеников несколько Сергей Николаевич берет первого встретившегося.

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

Выходные данные
Выведите на экран одно число - количество милисекунд, которое понадобиться Сергею Николаевичу, чтобы найти требуемые записи.
 
Примеры
Входные данные Выходные данные
1
10
112 136 165 205 122 116 177 212 107 169  
9
Сергей Николаевич любит заниматься статистикой. В его распоряжение попался список роста всех учащихся лицея. К его огорчению все данные были записаны в произвольном порядке и к тому же занимали несколько страниц. На одной странице помещается запись о 25 учащихся. Помогите Сергею Николаевичу определить на какой странице находится информация о первом самом высоком и первом самом низком учениках лицея. Страницы нумеруются с 1.

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

Выходные данные
Выведите на экран 2 числа в одной строке через пробел:
- первое число - номер страницы, на которой располагается информация о первом самом высоком ученике;
- второе число - номер страницы, на которой располагается информация о первом самом низком ученике. 
 
Примеры
Входные данные Выходные данные
1
10
112 136 165 205 122 116 177 212 107 169  
1 1

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

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

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

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

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

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

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

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

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

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

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


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

Выходные данные
Необходимо вывести все элементы массива с чётными индексами.
 
Примеры
Входные данные Выходные данные
1 6
4 5 3 4 2 3
4 3 2
 
Поделиться
Класснуть