Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
На дополнительных занятиях по математике у Маши, Даши и Миши 10-балльная шкала оценок. Каждый из ребят получили некоторое количество оценок. Напишите программу, которая выводит множество оценок, не встречающихся ни у одного из них.

Входные данные
На вход программе подаются оценки трех учеников, разделенные символом пробела (оценки каждого ученика на отдельной строке, оценки записаны по 10-балльной шкале: от 0 до 10).

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

 

Примеры
Входные данные Выходные данные
1
1 5 4 2 5 6 6 2 3 3 5 2
2 3 5 1 2 1 2 6 7 1 1 6
1 4 6 8 8 7 0 6 0 3 8 1
9 10
✓ 117✗ 156500лёгкаяВойти и решать
Дана последовательность из N натуральных чисел. Известно, что сумма всех чисел последовательности не превышает 109. Рассматриваются все её непрерывные подпоследовательности, в которых количество нечётных чисел кратно K = 7. Найдите наибольшую сумму такой подпоследовательности. 

Входные данные
Первая строка входных данных содержит одно число N (1 <= N <= 1 000 000) -  количество чисел. Каждая из следующих N строк содержит одно натуральное число, не превышающее 1 000.
 
Входные данные
Выведите ответ на задачу
 
Пример организации исходных данных во входном файле (для К=4):
6
8
17
3
13
11
21


В этом наборе можно выбрать последовательности 8+17+3+13+11 (сумма 52) и 3+13+11+21 (сумма 48). 
Ответ (для K = 4): 52

 
На каждом километре кольцевой автодороги с двусторонним движением установлены контейнеры для мусора. Длина кольцевой автодороги равна N километров. Нулевой километр и N-й километр автодороги находятся в одной точке. Известно количество мусора, которое накапливается ежедневно в каждом из контейнеров.
На автодороге работают два мусоровоза. Один едет по часовой стрелке, другой против. Оба мусоровоза выезжают из центра переработки одновременно навстречу друг другу и встречаются возле одного из контейнеров. Из одного контейнера вывезти мусор может только один мусоровоз. Время доставки мусора вычисляется как произведение количества мусора на расстояние от пункта до центра переработки. Центр переработки отходов открыли в одном из пунктов сбора мусора таким образом, чтобы общее время сбора мусора двумя мусоровозами было минимально.
Определите, возле контейнера с каким номером необходимо поставить центр переработки, чтобы потребовалось минимальное время мусоровозам для сбора мусора.

Входные данные
Первая строка входных данных содержит число N (1 <= N <= 10 000 000) – количество пунктов сбора мусора на кольцевой автодороге. В каждой из следующих N строк находится число – количество мусора в контейнере (все числа натуральные, количество мусора в каждом пункте не превышает 1000). Числа указаны в порядке расположения контейнеров на автомагистрали, начиная с первого километра.

Выходные данные
Выведите на экран одно число - ответ на задачу.
 
Примеры
Входные данные Выходные данные Пояснение
1 7
8
20
5
13
7
19
21
7 При таких исходных данных необходимо открыть центр переработки возле контейнера с номером 7:
Первый мусоровоз собирает мусор: 0 * 21 + 1 * 19 + 2 * 7 + 3 * 13 = 72
Второй мусоровоз потратит времени: 0 * 21 + 8 * 1 + 20 * 2 + 3 * 5 = 63
Итоговое время, которое потратят два мусоровоза: 72

 
 
Петя и Ваня решили придумать свои правила для игры Дартс. Они взяли круглое игровое поле и поделили его на сектора. Сектора нумеруются натуральными числами. Каждому сектору назначили количество очков, которое можно получить, если попасть дротиком в него. Перед началом игры выбирается нулевой сектор, который служит точкой отсчета: количество очков, которое набирает игрок, попадая в сектор, считается как количество очков, указанное в секторе, умноженное на расстояние (количество секторов) от нулевого сектора. При попадании в нулевой сектор количество очков равно нулю.

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

Определите, какой сектор необходимо выбрать нулевым.


Входные данные
Первая строка входных данных содержит число N — количество секторов, на которые разделено игровое поле.
Следующие N строк содержат по одному числу — количество очков, которые набирают игроки, попадая в соответствующий сектор, начиная с сектора с номером 1.

Выходные данные
Выведите одно число — номер сектора, который необходимо выбрать как нулевой.
 
Примеры
Входные данные Выходные данные Примечание
1 6
8
20
5
13
7
19
3 Для данного примера ответ — 3 (5 * 0 + 20 * 1 + 13 * 1 + 8 * 2 + 7 * 2 + 19 * 3 = 120)

Даны два натуральных числа n и (n <= m). Напишите программу, которая выводит все числа от n до m включительно удовлетворяющие хотя бы одному из условий:

  • число кратно 19;
  • число оканчивается на 10;
  • число кратно 2 и 3 одновременно;
  • число двузначное.

Формат входных данных
Вводятся два натуральных числа n и (n <= m). Каждое число записано в отдельной строке.

Формат выходных данных
Выведите ответ на задачу.
✓ 253✗ 811400лёгкаяВойти и решать
Даны два числа n и m (n >= m). Напишите программу, которая выводит все числа из диапазона от n до m включительно, с шагом -3.

Входные данные
Программа получает на вход два числа n и m (n >= m), каждое число в отдельной строке.

Выходные данные
Выведите все числа из диапазона от n до m. Каждое число выводите в отдельной строке.
 
 
Примеры
Входные данные Выходные данные
1
10
1
10
7
4
1
✓ 184✗ 469300лёгкаяВойти и решать
Даны два числа n и m (n <= m). Напишите программу, которая выводит все числа из диапазона от n до m включительно, добавляя перед каждым числом слово number.

Входные данные
Программа получает на вход два числа n и m (n <= m), каждое число в отдельной строке.

Выходные данные
Выведите все числа из диапазона от n до m, по одному числу в строке, добавляя перед каждым числом слово number
 
 
Примеры
Входные данные Выходные данные
1
2
5
number 2
number 3
number 4
number 5
✓ 309✗ 524400лёгкаяВойти и решать
Входные данные
В первой строке вводится число N (1<=N<=20)  - количество элементов одномерного массива. Во второй строке вводится N целых чисел (все числа по модулю не более 100).

Выходные данные
Выведите одно число - количество элементов исходного массива, равных последнему элементу (последний элемент в подсчете не учитывается).
 
Примеры
Входные данные Выходные данные
1 5
1 5 5 -4 5
2

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

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

У Пети есть последовательность 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).

В следующей строке сначала записано целое число (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лёгкаяВойти и решать
+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-mex#43131
Вы думали, что сможете спокойно выехать из Озёрска, погостив у друга? Конечно же, нет. Полицейский опять остановил вас и снова просит решить задачу, чтобы удостовериться, что вы можете выехать из города. Придётся вам решить очередную задачу.
Изначально у вас множество, в котором есть единственный элемент — это 0. Вам нужно будет поддерживать q запросов следующего вида:
•    + x — добавить число x в множество. Гарантируется, что раньше его там не было,
•    - x — удалить число x из множества. Гарантируется, что это число там есть,
•    ? k — найти k − mex множества.
В нашей задаче мы считаем, что k − mex множества — это наименьшее целое неотрицательное число x, которое делится на k и которого нет в множестве.
Входные данные
В первой строке находится целое число q (1 <= q <= 2 · 105) — количество запросов.
В следующих q строках находятся описания запросов. Если это запрос добавления, то в формате
+ x (1 <= x <= 1018), если запрос удаления, то - x (1 <= x <= 1018), если же запрос поиска, то ? k (1 <= k <= 1018). Гарантируется, что будет хотя бы один запрос типа ?.

Выходные данные
Для каждого запроса типа ? выведите k − mex множества.
 
Примеры
Входные данные Выходные данные
1 18
+ 1
+ 2
? 1
+ 4
? 2
+ 6
? 3
+ 7
+ 8
? 1
? 2
+ 5
? 1
+ 100000000
? 100000000
- 4
? 1
? 2
3
6
3
3
10
3
200000000
3
4

Замечание
После первого и второго запроса во множестве будут элементы 0,1,2. Наименьшее неотрицательное число, которое не делится на 1 и которого нет в множества, равно 3.
После четвертого запроса во множестве будут элементы 0,1,2,4. Наименьшее неотрицательное число, которое не делится на 2 и которого нет в множества, равно 6
 
Был обычный будний вечер в Магнитогорске. Фил и Космос возвращались на машине домой после тяжёлой рабочей смены. Тут Космос вспомнил, что Белый дал ему задание, которое он благополучно забыл выполнить. Чтобы уберечь Космоса от гнева Саши Белого, помогите ему выполнить задание.
Даны n целых чисел a1,a2,...,an. Требуется сделать наибольший общий делитель (НОД) всех чисел массива равным 1. За одну операцию можно сделать следующее:
•    Выбрать произвольный индекс в массиве 1 <= i <= n;
•    Сделать ai = gcd(ai,i). Стоимость такой операции равна n − i + 1.
Требуется найти минимальную суммарную стоимость операций, которые нужно будет сделать, чтобы НОД чисел массива стал равен 1.
Входные данные
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит целое число t (1 <= t <= 5000) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит единственное целое число n (1 <= n <= 20) — длину массива.
Вторая строка каждого набора входных данных содержит n целых чисел a1,a2,...,an (1 <= ai <= 109) — элементы массива.
Выходные данные
Для каждого набора входных данных выведите единственное целое число — минимальную суммарную стоимость операций, которые нужно будет сделать, чтобы НОД чисел массива стал равен 1.
 
Примеры
Входные данные Выходные данные
1 7
1
1
1
2
2
2 4
3
3 6 9
4
5 10 15 20
5
120 60 80 40 80
6
150 90 180 120 60 30
0
1
2
2
1
3
3


Замечание
В первом наборе входных данных НОД всего массива уже равен 1, поэтому операции применять не нужно.
Во втором наборе входных данных выберем i = 1. После этой операции a1 = gcd(2,1) = 1. Стоимость этой операции была равна 1.
В третьем наборе входных данных нужно будет выбрать i = 1, после этого массив a будет равен [1,4]. НОД этого массива равен 1, а суммарная стоимость равна 2.
В четвертом наборе входных данных нужно выбрать i = 2, после этого массив a будет равен [3,2,9]. НОД этого массива равен 1, а суммарная стоимость равна 2.
В шестом наборе входных данных можно выбрать i = 3, после этого массив a будет равен [120,60,1,40,80]. НОД этого массива равен 1, а суммарная стоимость равна 3.
 
Лети, лети, лепесток,
Через запад на восток,
Через север, через юг,
Возвращайся, сделав круг.
Лишь коснёшься ты земли
Быть по-моему вели.
© Цветик-семицветик.

Во время осенних каникул, проходящих с 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 часов.
 
Вы решили съездить проведать своего друга из Озерска. Однако на въезде в город вас остановили и попросили решить задачу, чтобы удостовериться, что вы действительно можете проехать на территорию закрытого города.
Бинарная строка это строка, состоящая только из символов 0 и 1. Полицейский дал вам бинарную строку s1s2 ... sn. Нужно отсортировать эту строку (то есть превратить ее в строку вида 00 ... 0011 ... 11) за наименьшее количество операций. За одну операцию вы можете сделать следующее:
• Выбрать произвольный индекс в строке 1 <= i <= n;
• Для всех j >= i поменять значение в j-й позиции на противоположное, то есть если sj = 1, то сделать sj = 0, и наоборот.

Входные данные
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит целое число t (1 <= t <= 104) количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит единственное целое число n (1 <= n <= 105) длину строки.
Вторая строка каждого набора входных данных содержит бинарную строку s длины n.
Гарантируется, что сумма n по всем наборам входных данных не превосходит 2 ·105.

Выходные данные
Для каждого набора входных данных выведите единственное целое число минимальное количество операций, которое потребуется сделать, чтобы отсортировать строку.
 
Примеры
Входные данные Выходные данные
1 6
1
1
2
10
3
101
4
1100
5
11001
6
100010
0
1
2
1
2
3


Замечание
В первом наборе входных данных строка уже отсортирована.
Во втором наборе входных данных можно выбрать i = 1 и после этого s = 01.
В третьем наборе входных данных можно выбрать i = 1 и получить s = 010, а после этого выбрать i = 2. В результате получим s = 001, то есть отсортированную строку.
В шестом наборе входных данных можно на первой итерации выбрать i = 5 и получить s = 100001. Затем выбрать i = 2 тогда s = 111110. Дальше выбираем i = 1, получая отсор-
тированную строку s = 000001.
Томми очень любит прямоугольные фигуры. На уроке геометрии Томми выдали четыре полоски бумаги для составления его любимой фигуры. К сожалению, одну полоску Томми потерял и у него остались  три полоски бумаги длиной l1, l2, l3. Теперь Томми задумался, а сможет ли он составить из этих полосок прямоугольник, если одну любую полоску разрежет один раз таким образом, чтобы длина каждой части была ненулевой, а сумма длин полученных частей равнялась бы изначальной длине полоски.
Томми считает, что квадрат является прямоугольником. 

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

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

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

 
Примеры
Входные данные Выходные данные
1
2 5 2
NO
2
2 4 2
YES
Поделиться
Класснуть