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

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

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

Вася, ярый любитель кино и столь же ярый ненавистник математики, первым купил билет на очередную премьеру. Когда Вася вошёл в зал и сел на своё место, он увидел, что все остальные кресла в его ряду ещё пустуют. Вася точно знал, что к началу сеанса зал заполнится до отказа, а это значило, что с минуты на минуту о его ноги начнут спотыкаться другие кинолюбители, пробирающиеся к своим местам. Несмотря на всю свою нелюбовь к математике, Вася мгновенно оценил, какое максимальное количество человек может спотнуться о его ноги, прежде чем все зрители займут свои места. А вы сможете?

Входные данные: Программа получает на вход два целые числа (по одному в строке) n и k — количество мест в том ряду, где сидит Вася, и номер его места соответственно (1≤k≤n≤50, n — чётно). Места в ряду нумеруются с единицы.

Выходные данные: Программа должна Вывести максимальное количество человек, которое может споткнуться о ноги Васи.
Примеры
Входные данные Выходные данные
1 4
1
1
Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево, например, в английском языке такими словами являются «radar» и «racecar».
Света изучает английский язык и решила принять участие в дистанционном конкурсе знатоков английского языка. Но, когда она писала ответ на задание «найдите самое длинное слово, которое является палиндромом», ошиблась и нажала на клавиатуре одну лишнюю клавишу.
Определите, какую букву нужно удалить в набранном Светой слове, чтобы это слово стало палиндромом.

Входные данные
Программа получает на вход строку из строчных английских букв, содержащую не менее 2 и не более 100 000 символов.

Выходные данные
Программа должна вывести единственное число – номер буквы в строке, при удалении которой слово становится палиндромом. Если при удалении любой буквы слово не станет палиндромом, программа должна вывести число 0.
Примеры
Входные данные Выходные данные
1 raceczar 6
2 car 0
✓ 38✗ 133800средняяВойти и решать

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

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

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

Примеры
Входные данные Выходные данные
1 1
2
3
4
0
4 1
✓ 30✗ 240800средняяВойти и решать

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

Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала -координата, затем – -координата).

Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.

 

Примеры
Входные данные Выходные данные
1 0.5 0.5  YES
2 -0.5 -0.5  NO

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

Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала -координата, затем – -координата).

Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.

 

Примеры
Входные данные Выходные данные
1 0. 0. NO

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

Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала -координата, затем – -координата).

Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.

 

Примеры
Входные данные Выходные данные
1 0. 1. NO
2 0. -1. YES

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

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

Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала -координата, затем – -координата).

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

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

 

Примеры
Входные данные Выходные данные
1 0. 1. YES
2 0. -1. NO

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

Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала -координата, затем – -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.

Примеры
Входные данные Выходные данные
1 1.5 0.25 YES
2 1.5 -0.25 NO
Давным-давно цены на билеты были такими:
1 поездка — 15 рублей,
5 поездок — 70 рублей,
10 поездок — 125 рублей,
20 поездок — 230 рублей,
60 поездок — 440 рублей.
Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов — минимальна.

Входные данные: Программа получает на вход одно число n.

Выходные данные: Программа должна вывести пять целых чисел: количество билетов на 1, 5, 10, 20, 60 поездок, которое необходимо приобрести. Если для какого-то данного n существует несколько способов приобретения билетов одинаковой суммарной стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.

Примеры
Входные данные Выходные данные
1 1 1 0 0 0 0
2 7 2 1 0 0 0
Часы#33579

В часах села батарейка, и они стали идти вдвое медленнее. Когда на часах было x1 часов y1 минут, правильное время было a1 часов b1 минут. Сколько времени будет на самом деле, когда часы в следующий раз покажут x2 часов y2 минут?

Входные данные Программа получает на вход числа x1, y1, a1, b1, x2, y2 в указанном порядке. Все числа целые. Числа x1, a1, x2 — от 0 до 23, числа y1, b1, y2 — от 0 до 59. Все числа вводят по одному в строке

Выходные данные Выведите два числа a2 и b2, определяющие сколько будет времени на самом деле, когда на часах будет x2 часов y2 минут. Числа выводить в одной строке через пробел
 

Входные данные Выходные данные
1 12
34
10
34
12
35
10 36
✓ 105✗ 602800средняяВойти и решать
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не менее, чем 4 (разница в индексах элементов пары должна быть 4 или более, порядок элементов в паре неважен). Необходимо определить максимальную сумму пары чисел кратную 112, при этом первый элемент пары должен быть больше второго (\(a[i] > a[j]\), \(i < j\)).

Входные данные
В первой строке входных данных задаётся количество чисел N (\(5 <= N <= 1000\)). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000.


Входные данные
Программа должна вывести в первой строке одно число: максимальную сумму пары элементов, находящихся в последовательности на расстоянии не менее чем 4, в которых сумма элементов кратна 112, а во второй строке – числа, образующие пару, через пробел. Если ни одной подходящей пары нет, нужно вывести одно число –1.
 
Примеры
Входные данные Выходные данные
1 7
119
62
343
50
48
105
274
224
119 105

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


Входные данные
В первой строке входных данных задаётся количество чисел N (\(1 < N <= 10000\)). В каждой из последующих N строк записано одно целое неотрицательное число, не превышающее 10000.

Входные данные
В качестве результата, программа должна вывести одно число, количество найденных пар.
 
Примеры
Входные данные Выходные данные
1 7
1
0
2
0
5
0
8
9
На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре неважен). Необходимо определить такую максимальную сумму элементов пары, чтобы суммы элементов пары и их индексов были кратны 3. Если такой суммы не найдется, вывести «–1». Нумерация элементов начинается с 1.
Напишите эффективную по памяти и времени программу.

Входные данные 
В первой строке входных данных задаётся количество чисел N (1 < N <=100000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10000.

Выходные данные 
В качестве результата программа должна вывести одно число: максимальную сумму пары кратную трём с суммой индексов кратной трём или «–1», если такой пары не нашлось.

 

Примеры
Входные данные Выходные данные Комментарий
1
10 
1 2 3 4 5 6 7 8 9 10
18 найденная пара: (a[8]=8; a[10]=10)
2
23 
36 16 15 15 17 16 14 15 47 22 27 29 35 23 39 29 15 
25 16 35 28 45 26
75 найденная пара: (a[9]=47; a[21]=28)

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

Для кодирования сообщения используют следующие действия: сообщение записывают, опуская пробелы, в прямоугольник заданной высоты по столбцам, а затем прочитывают строки в заданном порядке.
 
1 P R I 
2 R A N 
3 O M G 
4 G M 
 
а затем, если выбрать порядок строк 3, 1, 2, 4, получают закодированное сообщение OMGPRIRANGM.
 
Требуется написать программу, которая по заданным высоте прямоугольника и порядке прочтения строк при кодировке декодирует заданное сообщение.
 
Входные данные
Входные данные содержат: в первой строке высоту прямоугольника H (2 ≤ H ≤ 10), во второй – порядок прочтения строк (числа записаны через пробел), в третьей – закодированное сообщение, длина которого составляет от 1 до 200 символов. Закодированное сообщение состоит из заглавных и строчных латинских букв  и цифр.
 
Выходные данные
В выходные данные записывается декодированное сообщение.

Ввод Вывод
4
3 1 2 4
OMGPRIRANGM
PROGRAMMING


 

✓ 22✗ 1271 000средняяВойти и решать

На вход программы поступает последовательность из N целых чисел (\(N>1\)). Необходимо найти такое множество чисел из данного ряда, что их сумма будет четной и максимальной. Количество чисел в множестве k (\(1 <= k <= N\)).


Входные данные
В первой строке входных данных задается количество чисел N (\(2 <= N <= 10000\)). В каждой из последующих N строк записано одно целое число в диапазоне от –100 до 100. 

Выходные данные
Вывести одно число: максимальную четную сумму. 
 

 

Примеры
Входные данные Выходные данные
1 8
-5
-13
15
-9
-3
-6
-10
-8
12
Группа юных археологов работает на раскопках здания древней библиотеки. Летом
они обнаружили остатки старой книги и, изучив их, сделали следующие выводы.
Книга содержит несколько страниц, каждая страница содержит либо текст, либо
иллюстрацию. Первые k страниц книги точно содержат иллюстрации. Все страницы книги
пронумерованы, но номер страницы написан только на страницах, содержащих текст. Сумма
номеров страниц с текстом равна s.
К сожалению, ни общее количество страниц в книге, ни количество иллюстраций
установить не удалось. Тем не менее, юных археологов заинтересовал вопрос, какое
минимальное количество иллюстраций могло быть в книге.
Например, если k = 1, а s = 8, то страницы книги могли иметь следующее содержание
(буквой «Т» обозначена страница, содержащая текст, а буквой «И» — страница, содержащая
иллюстрацию):
- И Т И И И Т, пронумерованы страницы 2 и 6, 4 иллюстрации;
- И И Т И Т, пронумерованы страницы 3 и 5, 3 иллюстрации;
- И И И И И И И Т, пронумерована страница 8, 7 иллюстраций.
Минимальное количество иллюстраций равно 3.
Требуется написать программу, которая по заданным целым числам k и s определяет
минимальное количество иллюстраций, которое могло быть в книге.

Формат входных данных
Первая строка входных данных содержит целое число k (0 ≤ k ≤ 109).
Вторая строка входных данных содержит целое число s (k + 1 ≤ s ≤ 1012).

Формат выходных данных
Требуется вывести одно целое число — минимальное количество иллюстраций в
книге.
Ввод Вывод
1
8
3


 
В ряд выписаны натуральные числа от 1 до n и задано натуральное число k.
Выполняется один или несколько шагов по удалению чисел в этом ряду. На
очередном шаге оставшиеся числа просматриваются в возрастающем порядке, и каждое k-е число удаляется. Если после очередного шага осталось меньше k чисел, то процесс удаления чисел завершается.
Необходимо определить, на каком шаге будет удалено число n, или выяснить, что оно не будет удалено до завершения процесса.
Например, пусть n = 13, k = 2.
- На первом шаге будут удалены числа 2, 4, 6, 8, 10 и 12, останутся числа 1, 3, 5, 7, 9, 11 и 13.
- На втором шаге будут удалены числа 3, 7 и 11, останутся числа 1, 5, 9 и 13.
- На третьем шаге будут удалены числа 5 и 13, останутся числа 1 и 9.
- На четвертом шаге будет удалено число 9, останется число 1. Поскольку осталось одно число, процесс завершается.
Таким образом, число 13 будет удалено на третьем шаге.
Требуется написать программу, которая по заданным числам n и k определяет, на каком шаге будет удалено число n.
Формат входных данных
Первая строка входных данных содержит целое число n (3 ≤ n ≤ 1018).
Вторая строка входных данных содержит целое число k (2 ≤ k ≤ 100, k < n).
Формат выходных данных
Требуется вывести одно целое число — номер шага, на котором будет удалено число n, или число 0, если число n не будет удалено.
 
Ввод Вывод
13
2
3


 
В лаборатории теории чисел одного университета изучают связь между
распределением квадратов и кубов натуральных чисел.
Пусть задано целое неотрицательное число k. Рассмотрим множество натуральных
чисел от a до b, включительно. Будем называть k-плотностью этого множества количество
пар натуральных чисел x и y, таких, что a ≤ x2 ≤ b, a ≤ y3 ≤ b, причем |x2– y3| ≤ k.
Например, 2-плотность множества натуральных чисел от 1 до 30 равна 3, так как
подходят следующие пары:

 x = 1, y = 1, |x2– y3| = |1 – 1| = 0;
 x = 3, y = 2, |x2– y3| = |9 – 8| = 1;
 x = 5, y = 3, |x2– y3| = |25 – 27| = 2.
 
Требуется написать программу, которая по заданным натуральным числам a и b, а
также целому неотрицательному числу k, определяет k-плотность множества натуральных
чисел от a до b, включительно.
Формат входных данных
Входные данные содержат три строки. Первая строка содержит натуральное число a,
вторая строка содержит натуральное число b, третья строка содержит целое неотрицательное
число k (1 ≤ a ≤ b ≤ 1018, 0 ≤ k ≤ 1018).
Формат выходных данных
Выходные данные должны содержать одно целое число: искомую k-плотность
множества натуральных чисел от a до b, включительно.
 
Ввод Вывод
1
30
2
3
Как-то раз новогодние архитекторы спроектировали странный новогодний двухэтажный дом для новогоднего квеста. Каждый этаж новогоднего дома представляет собой закольцованный новогодний коридор из чётного числа новогодних комнат. Над каждой из новогодних комнат первого этажа находится соответствующая новогодняя комната второго этажа, причём они соединены новогодней лестницей. И переход из новогодней комнаты в соседнюю по этажу, и переход по новогодней лестнице занимают ровно одну новогоднюю минуту. Чтобы пройти новогодний квест, нужно войти в первую новогоднюю комнату, которая находится на первом новогоднем этаже, и пройти оттуда одним из кратчайших путей до выходной новогодней комнаты. Выходная новогодняя комната — это максимально удаленная от входной новогодней комнаты комната второго этажа. Новогодним архитекторам интересно, сколько существует способов это сделать. Не забывайте, что на новогодней лестнице, ведущей из входной новогодней комнаты на второй этаж, сидит злой домовой и не даёт вам пройти наверх.

Требуется найти за какое минимальное количество секунд возможно обойти весь дом.

Формат входных данных
Вводится одно число N: 1 ≤ N ≤ 2*109
Выводится одно число – количество секунд.

Ввод Ввод
2 2

(с) Ковешников М., 2018 г.
Жил дотер по имени Ануфрий. И вдруг случилось так, что его заботливая мама отрубила ему интернет. И как назло на компьютере Ануфрия была всего одна офлайновая игра – Minecraft.
 
Во время увлекатейнешего разрушения своего разума мальчик не знал что в этой версии игры надо думать о еде. И тут ему пришла интереснейшая мысль насчет своей еды: так как у него был только торт(как ни странно он круглый), каким образом он может получить максимальное количество кусков торта при разрезаний n. Но так как, как типичный игрок в Dota 2, Ануфрий не отличался сообразительностью. HELP HIM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Гарантируется, что меч, которым он режет торт, прямой. Так как Ануфрий не учит математику, а играет в доту, то не гарантируется n – натуральное(если такое произошло то выведите смайлик «
 
-1»).
 
На вход подается n.
 
На выходе вы должны вывести ответ на задачу)))

Ввод Вывод
-2 -1
0 0
3 7

(с) Тимченко А., 2018 г.
Поделиться
Класснуть