Напишите программу, которая находит в массиве элемент, самый близкий по величине к данному числу.
В первой строке задается одно натуральное число N, не превосходящее 1000 – размер массива.
Во второй строке содержатся N чисел – элементы массива (целые числа, не превосходящие по модулю 1000).
В третьей строке вводится одно целое число x, не превосходящее по модулю 1000.
Вывести значение элемента массива, ближайшее к x. Если таких чисел несколько, выведите любое из них.
Ввод | Вывод |
---|---|
5 1 2 4 5 6 3 |
2 |
5 1 2 4 5 6 3 |
4 |
3 1 2 3 2 |
2 |
Вася хочет узнать, какую оценку он получит в четверти по информатике. Учитель придерживается следующей системы: вычисляется среднее арифметическое всех оценок в журнале, и ставится ближайшая целая оценка, не превосходящая среднего арифметического.
При этом если у школьника есть двойка, а следующая за ней оценка – не двойка, то двойка считается закрытой, и при вычислении среднего арифметического не учитывается.
Вводится десять натуральных чисел от 2 до 5 через пробел – оценки Васи.
Выведите натуральное число (от 2 до 5) – его четвертную оценку.
Ввод | Вывод |
---|---|
2 5 2 5 2 5 2 5 2 5 |
5 |
2 2 2 2 2 2 2 2 2 5 |
2 |
5 5 5 5 5 5 5 5 5 2 |
4 |
Для изучения пассажиропотока в метро было записано время входа и время выхода в метро каждого пассажира. На основании этих данных определите, сколько пассажиров было в метро в некоторый заданный момент времени \(T\).
Программа получает на вход число пассажиров \(N\). Далее в \(N\) строчках записано время входа \(A_i\) и время выхода \(B_i\) каждого пассажира (\(A_i\le B_i\)). Время задается в минутах от начала работы метрополитена.
В следующей строке дано время \(T\). Выведите одно число: количество пассажиров в момент времени \(T\). Если какой-то пассажир в момент \(T\) входит или выходит, то его тоже необходимо посчитать.
Ввод | Вывод |
---|---|
4 3 12 8 9 5 10 10 12 10 |
3 |
Дана последовательность натуральных чисел 1, 2, 3, ..., \(N\) (\(1 \le N \le 1000\)). Необходимо сначала расположить в обратном порядке часть этой последовательности от элемента с номером \(A\) до элемента с номером \(B\), а затем от \(C\) до \(D\) (\(A \le B\); \(C \le D\); \(1 \le A, B, C, D \le N\)).
Даны числа \(N\), \(A\), \(B\), \(C\), \(D\).
Требуется вывести полученную последовательность.
Ввод | Вывод |
---|---|
9 2 5 6 9 |
1 5 4 3 2 9 8 7 6 |
9 3 6 5 8 |
1 2 6 5 8 7 3 4 9 |
Дана последовательность чисел. Вывести ее в след. порядке: первое число, последнее, второе, предпоследнее и так далее все числа (см. пример).
Программа получает на вход количество чисел \(N\) (количество чисел), в следующей строке сами числа через пробел.
Выведите числа в требуемом порядке через пробел.
Ввод | Вывод |
---|---|
5 1 2 3 4 5 |
1 5 2 4 3 |
4 1 2 3 4 |
1 4 2 3 |
Назовем последовательность чисел последовательностью \(k\)-боначчи, если каждый элемент этой последовательности является суммой \(k\) предыдущих членов последовательности. В частности, последовательность \(2\)-боначчи является последовательностью Фибоначчи.
Более формально, \(i-й\) элемент последовательности \(k_i\) равен 1, если \(0\le i\le k - 1\) и равен сумме \(k\) предыдущих членов последовательности \(k_{i-1} + k_{i-2} + ... + k_{i-k}\) при \(i\ge k\).
Даны два числа \(k\) и \(n\) (\(k\ge 2\), \(n\ge0\)). Вычислите \(n\)-й член последовательности \(k\)-боначчи \(k_n\).
Ввод | Вывод |
---|---|
3 6 |
17 |
100 0 |
1 |
Даны два списка чисел. Сравните их в лексикографическом порядке. Сами элементы списка сравниваются, как числа.
При решении этой задачи нельзя использовать стандартные операции языка Питон для сравнения списков
(==
, <
и т.д.). Нельзя никак модифицировать данные списки, использовать вспомогательные списки.
Первая строка входных данных содержит два натуральных числа N и M. Во второй строке записаны через пробел N чисел: элементы первого списка. В третьей строке записаны через пробел M чисел: элементы второго списка.
Если списки совпадат, выведите слово equal
.
Если первый список меньше второго выведите слово less
.
Если первый список больше второго, выведите слово greater
.
Ввод | Вывод |
---|---|
3 3 1 7 9 1 7 9 |
equal |
3 4 1 2 3 1 2 10 11 |
less |
3 2 3 2 1 3 2 |
greater |
Не без вашей помощи в метро посчитали количество пассажиров в каждый час работы метро. Теперь вас просят по этим данным найти “час пик” такие \(k\) подряд идущих часов, что суммарное число пассажиров в эти часы максимальное.
Первая строка входных данных содержит количество часов в сутках, в течение которых работает метрополитен \(N\) (\(N\пe1\)). Вторая строка содержит \(N\) неотрицательных чисел, записанных через пробел. В третьей строке записана продолжительность часа пик \(K\) (\(1\le k \le N\)).
Найдите \(K\) подряд идущих часов работы метрополитена с максимальным суммарным числом пассажиров и выведите суммарное число пассажиров за эти часы.
Ввод | Вывод |
---|---|
7 3 2 5 4 3 2 4 3 |
12 |
Даны результаты метеорологических наблюдений: количество осадков в каждый из 31 дня марта. Метеорологи хотят определить, какая из недель марта была наименее дождливой. Неделя — это семь дней с понедельника до воскресенья, то есть в марте может быть три или четыре полные недели.
Программа получает на вход 31 целое неотрицательное число через пробел: количество осадков для каждого из дней. В следующей строке записано число от 1 до 7: день недели, на который приходится 1 марта (1 означает понедельник, 2 вторник и так далее).
Программа должна определить неделю с наименьшим суммарными числом осадков и вывести суммарное число остатков на этой неделе.
Ввод | Вывод |
---|---|
0 4 3 3 4 4 6 2 4 8 3 1 4 5 8 1 6 3 8 4 6 2 9 4 0 5 4 5 1 8 0 4 |
28 |
Примечание к примеру. 1 марта — это четверг, поэтому первые четыре дня месяца пропускаются. Остаются следующие недели: 4 4 6 2 4 8 3 (сумма 31), 1 4 5 8 1 6 3 (сумма 28), 8 4 6 2 9 4 0 (сумма 33). Последние шесть дней месяца полной неделей не являются, поэтому не учитываются.
Одна фирма обслуживает автоматы по продаже чая и кофе.
Стоимость стакана чая и кофе в автомате равна пяти рублям. Автомат принимает монеты по 5 и 10 рублей, а также купюры в 10, 50 и 100 рублей. Когда покупателю надо выдавать сдачу (т.е. когда пассажир бросил в автомат десятирублёвую монету или 10-, 50- или 100-рублёвую купюру), автомат выдаёт сдачу пятирублёвыми монетами; если же покупатель бросил в автомат пятирублёвую монету, то автомат её сохраняет и может использовать для сдачи следующим покупателям.
Ясно, что, чтобы обеспечить возможность выдачи сдачи всем покупателям, может потребоваться изначально загрузить в автомат некоторое количество пятирублёвых монет. Сейчас автоматы проходят испытания с целью определить минимальное количество монет, которые надо загрузить в автомат перед началом дня. Вам дан протокол одного из таких испытаний: известен порядок, в котором покупатели оплачивали свои покупки различными монетами и купюрами. Определите, какое минимальное количество пятирублёвых монет должно было изначально находиться в автомате, чтобы всем покупателям хватило сдачи.
В первой строке входных данных находится одно натуральное число \(N\) — количество покупок в автомате, которые были совершены в ходе испытания (\(1\leq N\leq 50\,000\)). Во второй строке находятся \(N\) натуральных чисел, каждое из которых равно номиналу монеты или купюры, которую использовал очередной покупатель для оплаты; каждый номинал может принимать одно из четырёх значений: 5, 10, 50 или 100.
Выведите одно число — минимальное количество пятирублёвых монет, которые надо было загрузить в автомат изначально, чтобы всем покупателям хватило сдачи.
Ввод | Вывод |
---|---|
3 10 5 100 |
19 |
3 5 5 10 |
0 |
4 50 5 5 5 |
9 |
Мальчик Антон решает вступительную работу в летний математический лагерь. В ней \(N\) заданий, которые можно выполнять в произвольном порядке. Разные задачи требуют разного времени для решения. При этом известно, что если задание с номером \(i\) выполнять \(j\)-м по счету, Антону потребуется \(T_i\times j\) времени: чем больше думаешь, тем больше устаешь. Например, если начать с первой задачи, а затем выполнить вторую, то потребуется \(T_1\times 1 + T_2\times2\) времени, а если выполнить сначала вторую задачу, а затем первую — то \(T_2\times 1 + T_1\times2\) . Подскажите Антону, в каком порядке нужно решать задачи, чтобы на выполнение всей работы ушло как можно меньше времени.
В первой строке входных данных записано число \(N\) (\(0\lt N \le 10\)). Во второй строке записаны числа \(T_1\), \(T_2\), ..., \(T_N\) через пробел. Все числа целые и удовлетворяют следующим ограничениям: \(0 \lt T_i \le 100\).
Требуется вывести сначала минимальное время, за которое можно решить все задачи, а затем — номера задач в том порядке, в котором их нужно решать, чтобы уложиться в это время. Если решений несколько, нужно выдать любое из них.
Ввод | Вывод |
---|---|
2 2 3 |
7 2 1 |
В математический лагерь, в который поступил Антон, всего отправляется \(N\) школьников. Транспортная компания готова предложить любой из \(M\) автобусов различной вместимости. При этом аренда каждого автобуса стоит одинаково. Определите, какое наименьшее число автобусов нужно заказать для того, чтобы перевезти всех школьников.
В первой строке входных данных через пробел записаны целые числа \(N\) и \(M\) (\(1 \le N \le 10^6, 1 \le M \le 1000\)). В следующей строке через пробел записаны \(M\) целых чисел в пределах от 1 до 1000 — вместимости автобусов.
В первой строке выведите число \(K\) — минимальное количество автобусов,
которое придётся заказать. В следующей строке выведите через пробел
\(M\) целых чисел — номера автобусов, которые нужно заказать.
Автобусы пронумерованы от 1 до \(M\) в том порядке, в которых они перечислены
во входных данных. Если возможных решений несколько, выведите любое.
Если решения нет, в единственной строке выведите -1
.
Ввод | Вывод |
---|---|
345 5 100 130 190 140 150 |
3 1 3 4 |
345 3 100 100 100 |
-1 |
На контрольной работе \(N\) учеников сидят в ряд. Для каждого ученика известно, какую оценку он получил бы, если бы писал эту контрольную самостоятельно (оценка — это число от 2 до 5). Однако ученики могут писать контрольную не только самостоятельно, но и списывать у своего соседа, но только если сосед пишет контрольную самостоятельно. В этом случае списывающий получит такую же оценку, какую получит тот, у кого он списал.
А именно (правила применяются строго в указанном порядке):
Определите, кто какую оценку в итоге получит.
Вводится число \(N\) (\(1\le N \le 10\)) — количество учеников, и далее последовательность из N чисел, описывающая, кто на какую оценку может написать контрольную, если будет писать самостоятельно.
Выведите \(N\) чисел — оценки, которые получат ученики за контрольную.
Ввод | Вывод | Пояснение |
---|---|---|
5 5 2 3 4 5 |
5 5 3 5 5 |
Первый и пятый ученики будут писать самостоятельно. Второй спишет у первого, а четвертый — у пятого (в итоге также получат пятерки). Третьему не у кого списывать, так как его соседи будут писать работу не самостоятельно. |
6 2 2 3 2 2 4 |
2 3 3 3 4 4 |
Второй и четвертый спишут у третьего, пятый — у шестого. |