Информатика

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

Дан массив, состоящий из 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
Громозека считает натуральное число вкусным, если все его цифры различны и сумма цифр этого числа равна числу, написанному на печеньке, которую ест Громозека.
Сейчас Громозека ест печеньку, на которой написано число n. Помогите ему определить наименьшее вкусное число для такой печеньки.
Например, если n = 10, то наименьшее вкусное число 19 (1+9=10, все цифры числа 19 различные).

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

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 10 19
2 1 1
✓ 68✗ 314800средняяВойти и решать
Лес#42971
Миша заблудился в лесу и пытается выйти из него. Он проходит A шагов на север, затем B шагов на восток, затем C шагов на юг, D шагов на запад, после чего повторяет свои действия (снова A шагов на север, B шагов на восток, C шагов на юг, D шагов на запад и т.д.).
Оказалось, что для того, чтобы выйти из леса из его первоначальной точки, ему нужно было пройти ровно K шагов в любом из четырёх направлений, то есть первоначально Миша находится в центре квадрата со стороной 2K шагов. Определите, сколько шагов Миша сделает, прежде чем выйдет из леса (впервые окажется на границе леса).

Входные данные
Первые четыре строки входных данных содержат по одному целому положительному числу A, B, C, D — количество шагов, которое Миша делает на север, восток, юг, запад. Пятая строка входных данных содержит целое число K — расстояние от начального расположения Миши до четырёх сторон квадрата (границ леса). Все входные числа не превосходят 109.

Выходные данные
Программа должна вывести одно целое число — количество шагов, которое Миша сделает до выхода из леса. Гарантируется, что входные данные таковы, что Миша когда-нибудь выйдет из леса. 
Обратите внимание, что значение ответа может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).
 
Примеры
Входные данные Выходные данные
1 1
1
2
3
3
13


Замечание
На рисунке изображён пример из условия. Миша делает 1 шаг на север (вверх), 1 шаг на восток (вправо), 2 шага на юг (вниз), 3 шага на запад (влево). От начального расположения Миши до стороны квадрата — 3 шага. Первоначальное расположение Миши и точка выхода из леса обозначены синими кругами. Путь Миши обозначен жёлтой линией. Миша пройдёт 13 шагов, прежде чем впервые окажется на границе леса.

Вася пишет на доске целое число n. Далее с числом записанным на доске он проделывает следующую операцию:
  • если последняя цифра числа не равна нулю, то Вася стирает старое число и записывает на доске новое число, равное минимальному целому числу, которое не меньше, чем частное от деления старого числа на последнюю цифру этого числа;
  • если последняя цифра числа равна нулю, то он ее стирает.
Какое число будет записано на доске после выполнения данной операции k раз?


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

Выходные данные
Необходимо вывести одно число - ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 512 4 3
2 10000 5  1
✓ 87✗ 225600лёгкаяВойти и решать
Вася пишет на доске целое число 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) параметр

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