Язык программирования

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.

У Пети есть последовательность A неотрицательных целых чисел длины n. Числа в последовательности пронумерованы, начиная с нуля. Петя считает последовательность счастливой, если четность каждого элемента последовательности совпадает с четностью номера данного элемента. Формально это означает, что если для всех i (0 <= i <= n - 1) выполнено равенство i mod 2 = a[i] mod 2, где x mod 2 - остаток от деления x на 2, то последовательность является счастливой.

Петя хочет сделать свою последовательность счастливой, для этого он берет любые два элемента и меняет их местами (элементы не обязательно соседние). Помогите найти Пете минимальное количество ходов, за которое он сможет сделать свою последовательность счастливой. Если у Пети не получится сделать последовательность счастливой, выведите -1.


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

Программа получает на вход в первой строке целое число n (1 <= n <= 40) — размер последовательности A. Далее следует строка, содержащая n целых чисел a0,a1,…,an−1 (0 <= ai <= 1000) — целые неотрицательные числа последовательности.


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

Для каждого набора тестовых данных выведите одно целое число — минимальное количество ходов, за которое можно сделать заданную последовательность A счастливой, или -1, если это сделать невозможно.
 

Примеры
№ Входные данные Выходные данные
1
4
3 2 7 6
2
2
1
7
-1
3
7
4 9 2 1 18 3 0
0

В детском саду Солнышко на Праздник Осени у всех детей должно быть по одинаковому числу воздушных шариков. Воспитательница Анна Николаевна узнала, сколько воздушных шариков сможет принести из дома каждый ребенок на праздник.  Чтобы уравнять количество шариков у всех детей, родительский комитет решил закупить необходимое число воздушных шариков.

Всего в группе у Анны Николаевны n воспитанников, количество имеющихся воздушных шариков у каждого каждого ребенка равно ai.

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

Будем считать, что воздушные шарики, имеющиеся у детей, не лопнут до конца праздника.

 

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

В первой строке входных данных содержится целое число n (1 <= n <= 100) — количество воспитанников в группе у Анны Николаевны.

Во второй строке содержатся n чисел a1,a2, ..., an, где ai (0 <= ai <= 106) — количество воздушных шариков, которое i-й ребенок сможет принести из дома.

 

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

В единственную строку выходных данных выведите выведите целое число — минимальное количество воздушных шариков, которое которое необходимо закупить.

 
Примеры
№ Входные данные Выходные данные
1 5
0 1 2 3 4
10
2 5
1 1 0 1 1
1
3 3
1 3 1
4
4 1
12
0
Маша читает книги чаще всего в электронном виде. Сегодня она захотела узнать, сколько в книге, которую она сейчас читает, различных слов. Помогите Маше написать для этого программу.
 Словом считается последовательность непробельных символов, идущих подряд, слова разделены одним или большим числом пробелов.
Знаками препинания .,;:-?! необходимо пренебречь. Регистр написания символов не учитывается.


Входные данные
Программа получает на строку текста.

Выходные данные
Выведите количество различных слов в этой строке.
 
 
Примеры
№ Входные данные Выходные данные
1 This is my book! 4
2 The next day, business began to pick up. Not dramatically, but bit by bit. A sack of potatoes here... 18
✓ 76✗ 323700средняяВойти и решать
Маша, Даша и Миша собирают карточки с числами. У каждого из них уже есть по n карточек. На каждой карточке написано число, не превышающее 10. Вас интересует какие числа встречаются, но не более, чем у двоих из ребят?
Напишите программу для нахождения ответа на этот вопрос.
 

Входные данные
В первой строке записано натуральное число n - количество карточек у каждого ребенка. В каждой из трех следующих строк записаны по n неотрицательных целых чисел, не превышающих 10, разделенных пробелом. Во второй строке - числа на карточках Маши, в третьей - Даши, в четвертой - Миши.

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

 
Примеры
№ Входные данные Выходные данные
1
4
0 8 9 5 
6 7 3 7 
4 3 5 5
0 3 4 5 6 7 8 9
2
3
1 2 3
1 2 3
4 5 6
1 2 3 4 5 6
✓ 136✗ 217500лёгкаяВойти и решать

Алиса и Юля, ученицы 6-В класса одной из московских школ, вместе готовятся к олимпиаде по программированию. Для того, чтобы хорошо выступить на олимпиады, они должны решить все задачи тренировочного контеста.

Всего у девочек n задач. Алиса может точно решить p задач контеста. А Юля может решить только q задач этого же контеста. У вас есть информация о номерах задач, которые может решить Алиса, и номера задач, которые может решить Юля. Смогут ли девочки решить все задачи этого контеста и хорошо выступить на олимпиаде, если объединят свои усилия и будут решать контекст вместе?

 

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

В первой строке записано единственное целое число n (1 <=  n <= 100).

В следующей строке сначала записано целое число p (0 <= p <=n), затем следуют p различных целых чисел a1, a2, ..., ap (1 <= ai<= n). Эти числа обозначают номера задач, которые может решить Алиса. В следующей строке содержатся номера задач, которые может решить Юля, в аналогичном формате. Предполагается, что задачи пронумерованы от 1 до n.


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

Если подружки могут решить все задачи вместе, выведите «I'm winner!». Если это невозможно, выведите «Oh!» (без кавычек) и с новой строки задачи, которые девочки решить не могут (номера задач следует выводить в порядке возрастания через один пробел).

 
Примеры
№ Входные данные Выходные данные
1
4
3 1 2 3
2 2 4
I'm winner!
2
5
3 1 2 3
2 2 3
Oh!
4 5
✓ 147✗ 526600лёгкаяВойти и решать

Томми очень любит читать. Он взял из библиотеки n книг (в i-й книге ai страниц, страницы нумеруются с 1). Томми очень бережно относится к книгам, поэтому каждую из них обернул в обложку. Но, так как у него не оказалось ни одной прозрачной обложки, он пронумеровал книжки от 1 до n и написал номер на обложке каждой книги.

Томми читает уже m дней подряд. Книги он читает строго по порядку, начиная с книги с номером 1.  Каждый день он записывает на доску общее число страниц, которые прочитал к текущему дню.

Например, если бы Томми взял 2 книги и, при этом, в в первой книге 3 страницы, а во второй - 5 страниц, то прочитав в первый день 2 страницы, а во второй день - 4 страницы у Томми на доске было бы записано два числа 2 и 6.

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


Входные данные
Программа получает на вход несколько строк. Первая строка содержит два целых числа n и m (1 <= n, n <= 2·105) - количество книг, взятых Томми из библиотеки и количество дней, в течении которых Томми читал книги. Во второй строке следует последовательность a1, a2, ... an (1 <= a1<= 1010), где ai равно количеству страниц в i-й книге. В третьей строке следует последовательность d1, d2, ... dm (1 <= dj <= a1 + a2 +...+ an), где dj равно общему числу страниц, прочитанных Томми к j-му дню. Все dj заданы в порядке возрастания.

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

Выведите m строк. В каждой строке выведите по два числа - номер книги k (1 <= k <= n) и номер страницы в этой книге s (1 <= s <= ak), на которой остановился Томми в текущий день.

 
Примеры
№ Входные данные Выходные данные
1 3 6
10 15 12
1 9 12 13 15 17
1 1
1 9
2 2
2 3
2 5
2 7
2 2 3
5 10000000000
5 6 9999999999
1 5
2 1
2 9999999994
+3 or +5#43329
Маленький Гриша научился выполнять с любым числом две операции: прибавлять к числу 3 и прибавлять к числу 5. Но, к сожалению, он еще не знает, что таким путем он не cможет из числа 1 получить любое число. Помогите Грише понять, сможет ли он из числа 1 получить число N или нет. 


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

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


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

Выведите слово YES, если число N можно получить из числа 1, или NO - в противном случае. 
 

Примечание

Число 1 можно получить всегда, не выполняя при этом никаких действий.

 
Примеры
№ Входные данные Выходные данные
1 5 NO
2 1 YES
✓ 157✗ 297500лёгкаяВойти и решать
Алексей Юрьевич и Михаил Леонидович — тренера чебаркульской сборной по американскому футболу. Сегодня им нужно заполнить очень важную анкету на чемпионат мира, в которой необходимо указать всех членов команды в порядке возрастания их силы.
Для решения этой непростой задачи были собраны все игроки сборной, и каждый из спортсменов сказал несколько (возможно ноль) фраз вида: «Я сильнее, чем игрок k» (k может отличаться от высказывания к высказыванию, ни один спортсмен не говорил одинаковых фраз). Когда опрос был окончен, тренера поняли, что теперь могут однозначно упорядочить спортсменов по силе, соответствуя всем высказываниям.
Сразу после того, как Алексей Юрьевич и Михаил Леонидович написали ответ организаторам олимпиады, они задумались, а что было бы, если бы футболисты отвечали иначе? Ведь далеко не во всех случаях можно восстановить единственно возможный порядок игроков.
Теперь им интересно, сколько наборов ответов спортсменов однозначно задают их порядок? Так как это число может быть слишком большим, они просят найти лишь его остаток от деления на 109+7.
Входные данные
Во входных данных записано единственное число n — количество спортсменов в сборной (1 <= n <= 105) .
Выходные данные
Выведите единственное число — количество наборов ответов спортсменов, однозначно позволяющих упорядочить их по силе.
 
Примеры
№ Входные данные Выходные данные
1 2 2


Замечание
В данном тесте вариантов ответов всего 2: первый сказал, что сильнее второго, второй не сказал ничего, или первый не сказал ничего и второй сказал, что он сильнее первого.
 
Саша Белый и его бригада приехали на переговоры в Сатку. Однако беседа обещает быть жаркой, поэтому Саша хочет спрятать свою братву в засаду. Переговоры будут проходить на квадратном поле размером 2N×2N, и в каждую клетку этого поля Белый может посадить от 0 до 2 братанов. Так как Саша не любит повторяться, то суммарное количество братанов в каждом столбце и в каждой строке квадратного поля должно быть различным.
Как вы знаете, из-за определённых обстоятельств Белый не закончил вуз, поэтому не силён в программировании, и вам нужно срочно помочь ему.
Подскажите Белому, сможет ли он расставить братву с заданным условием, и если сможет, то приведите пример расстановки.
Входные данные
Во входных данных записано единственное целое число N такое, что 2N — длина стороны поля (1 <= N <= 300).
Выходные данные
На первой строке выведите YES, если существует расстановка, что суммарное количество братанов в каждом столбце и в каждой строке квадратного поля различно, и NO в противном случае. Если расстановка существует, то на следующих 2N строках выведите пример. Если существует несколько подходящих расстановок, то можете вывести любую из них.
 
Примеры
№ Входные данные Выходные данные
1 1 YES
0 0
1 2
2 2 YES
0 1 0 2
2 2 0 2
0 2 1 2
0 2 0 2
Лети, лети, лепесток,
Через запад на восток,
Через север, через юг,
Возвращайся, сделав круг.
Лишь коснёшься ты земли
Быть по-моему вели.
© Цветик-семицветик.

Во время осенних каникул, проходящих с 1 ноября по 8 ноября 2022 года, вы планируете совершить экскурсию в один из городов России. Вы даже выбрали город и даты полётов туда и обратно, но страница с результатами прогрузилась лишь частично. Вам требуется по имеющейся информации найти самый дешёвый вариант посетить выбранный город и вернуться, заодно посчитав, сколько у вас будет времени на осмотр достопримечательностей. Стоит учесть, что часто авиакомпании предоставляют скидку на перелёт туда-обратно.

Входные данные
В первой строке входного файла заданы два целых числа n и m — количество вариантов перелёта «туда» и «обратно» (1 <= n,m <= 1000). В следующих n строках описаны варианты перелёта «туда» в формате: CCxxxx yyyy.mm.dd hh:mm YYYY.MM.DD HH:MM TT:tt value, где:
•    CC — код авиакомпании, xxxx — номер рейса,
•    yyyy.mm.dd hh:mm — дата и время вылета,
•    YYYY.MM.DD HH:MM — дата и время прилёта,
•    TT:tt — время в пути, гарантируется, что время перелёта не превышает 24 часа,
•    value — целое число, стоимость перелёта (0 <= value <= 100000).
В следующих m строках описаны варианты перелёта «обратно» в том же формате. Дата вылета рейса «туда» во всех случаях как минимум на три дня раньше даты рейса «обратно».
Гарантируется, что все перелёты начинаются во время осенних каникул.
В последующих строках выписаны скидки, которые предоставляют авиакомпании за полёт тудаобратно. Каждая строка описывает одну авиакомпанию в формате: CC — код авиакомпании и value — целое число, размер скидки в процентах (0 <= value <= 100). Скидка рассчитывается с точностью до рублей, копейки отбрасываются в пользу клиента. Гарантируется, что у перечисленных компаний есть хотя бы один рейс либо «туда», либо «обратно», и что компании в данном списке не повторяются.

Выходные данные
В первой строке выведите два натуральных числа через пробел — оптимальные номера вариантов рейсов туда и обратно. Если существует несколько пар рейсов, дающих оптимальную стоимость, то нужно выбрать ту, которая позволяет провести за осмотром достопримечательностей как можно больше времени. Из всех таких пар выбрать ту, номера вариантов которой как можно раньше встретились в поисковой выдаче. Во второй строке выведите, сколько времени у вас будет на осмотр, в формате dd:hh:mm. Считается, что осмотр достопримечательностей начинается с момента прибытия и продолжается до момента отлёта.
 
Примеры
№ Входные данные Выходные данные
1 2 3
DP4160 2022.11.02 07:05 2022.11.02 07:35 02:35 4000
DP4130 2022.11.02 07:45 2022.11.02 08:10 02:36 3423
S71141 2022.11.07 05:55 2022.11.07 09:55 02:40 3432
S71042 2022.11.07 05:59 2022.11.07 09:59 02:45 3422
S71243 2022.11.07 04:25 2022.11.07 09:25 02:30 3432
DP 15
S7 10
2 2
04:21:49
Замечание
Россия – большая страна с 11 часовыми поясами, поэтому, вполне возможно прилететь в город назначения раньше, чем вылетел, поскольку время отправления и прибытия самолетов всегда указывается по местному времени. Из Челябинска можно улететь в Калининград, с разницей -3 часа, или во Владивосток, с разницей +6 часов.
 
Томми очень любит прямоугольные фигуры. На уроке геометрии Томми выдали четыре полоски бумаги для составления его любимой фигуры. К сожалению, одну полоску Томми потерял и у него остались  три полоски бумаги длиной l1, l2, l3. Теперь Томми задумался, а сможет ли он составить из этих полосок прямоугольник, если одну любую полоску разрежет один раз таким образом, чтобы длина каждой части была ненулевой, а сумма длин полученных частей равнялась бы изначальной длине полоски.
Томми считает, что квадрат является прямоугольником. 

Помогите Томми определить, получится ли у него сделать прямоугольник.

Входные данные
Программа получает на вход три целых числа l1, l2, l3 (1 <= l1, l2, l3 <= 108).

Выходные данные
Если у Томми получится построить прямоугольник, то выведите на экран слово YES. Если прямоугольник построить не получится - слово NO.

 
Примеры
№ Входные данные Выходные данные
1
2 5 2
NO
2
2 4 2
YES
Громозека считает натуральное число вкусным, если все его цифры различны и сумма цифр этого числа равна числу, написанному на печеньке, которую ест Громозека.
Сейчас Громозека ест печеньку, на которой написано число n. Помогите ему определить наименьшее вкусное число для такой печеньки.
Например, если n = 10, то наименьшее вкусное число 19 (1+9=10, все цифры числа 19 различные).

Входные данные
Программа получает на вход целое число n (1 <= n <= 45).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
№ Входные данные Выходные данные
1 10 19
2 1 1
✓ 68✗ 320800средняяВойти и решать
Вася пишет на доске целое число n. Далее с числом записанным на доске он проделывает следующую операцию:
  • если последняя цифра числа не равна нулю, то Вася стирает старое число и записывает на доске новое число, равное минимальному целому числу, которое не меньше, чем частное от деления старого числа на последнюю цифру этого числа;
  • если последняя цифра числа равна нулю, то он ее стирает.
Какое число будет записано на доске после выполнения данной операции k раз?


Входные данные
Первая строка входных данных содержит два целых числа n и k (2 <= n <= 109, 1 <= k <= 50) - число, которое Вася изначально написал на доске и количество выполнения описанной операции.

Выходные данные
Необходимо вывести одно число - ответ на задачу.
 
 
Примеры
№ Входные данные Выходные данные
1 512 4 3
2 10000 5  1
✓ 93✗ 269600лёгкаяВойти и решать
Вася пишет на доске целое число n. Далее с числом записанным на доске он проделывает следующую операцию:
  • если последняя цифра числа не равна нулю, то Вася делит число на данную последнюю цифру и отбрасывает дробную часть (при этом старое число Вася стирает с доски и записывает на доске новое);
  • если последняя цифра числа равна нулю, то он ее стирает.
Какое число будет записано на доске после выполнения данной операции k раз?


Входные данные
Первая строка входных данных содержит два целых числа n и k (2 <= n <= 109, 1 <= k <= 50) - число, которое Вася изначально написал на доске и количество выполнения описанной операции.

Выходные данные
Необходимо вывести одно число - ответ на задачу.
 
 
Примеры
№ Входные данные Выходные данные
1 512 4 21
2 10000 5  1
✓ 67✗ 72500лёгкаяВойти и решать

В физической лаборатории проводится долговременный эксперимент по изучению гравитационного поля Земли. По каналу связи каждую минуту в лабораторию передаётся положительное целое число – текущее показание прибора «Гамма 2022». Количество передаваемых чисел в серии известно и не превышает 100 000. Все числа не превышают 10 000. Временем, в течение которого происходит передача, можно пренебречь. Необходимо вычислить «гамма-значение» серии показаний прибора – минимальное нечетное произведение двух показаний, между моментами передачи которых прошло не менее 6 минут. Если получить такое произведение не удаётся, ответ считается равным -1.
 

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


Входные данные  
В первой строке задаётся число N – общее количество показаний прибора. Гарантируется, что \(N>6\). В каждой из следующих N строк задаётся одно положительное целое число – очередное показание прибора.

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

 

Примеры
№ Входные данные Выходные данные
1 12
45
5
3
1
7
23
21
20
19
18
1
7
1

В физической лаборатории проводится долговременный эксперимент по изучению гравитационного поля Земли. По каналу связи каждую минуту в лабораторию передаётся положительное целое число – текущее показание прибора «Гамма 2022». Количество передаваемых чисел в серии известно и не превышает 100 000. Все числа не превышают 10 000. Временем, в течение которого происходит передача, можно пренебречь. Необходимо вычислить «гамма-значение» серии показаний прибора – максимальное чётное произведение двух показаний, между моментами передачи которых прошло не менее 10 минут. Если получить такое произведение не удаётся, ответ считается равным -1.
 

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


Входные данные  
В первой строке задаётся число N – общее количество показаний прибора. Гарантируется, что \(N > 10\). В каждой из следующих N строк задаётся одно положительное целое число – очередное показание прибора.


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

 

 

Примеры
№ Входные данные Выходные данные
1 15
45
5
3
1
7
23
21
20
19
18
1
7
2
12
7
540
42904#42904

Как называется переменная, которая видна в любой функции программного кода?

1) глобальная переменная
2) локальная переменная
3) нельзя создавать переменные внутри функции
4) параметр

Поделиться
Класснуть