Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
На территории будущей стройки растут три дерева. Фирма получила разрешение на строительные работы с условием, что два (любых) дерева будут сохранены. Прораб хочет построить забор треугольной формы так, чтобы внутри него оказалось ровно два дерева.
Деревья на плане изображаются кругами, которые попарно не вложены друг в друга и не пересекаются (но могут касаться).
Напишите программу, которая по введенной информации о деревьях определит, возможно ли построить такой забор, и, если да, то какое дерево окажется не огорожено.
Вводится информация о трех деревьях: для каждого дерева координаты центра и радиус круга, изображающего это дерево на плане. Все числа целые, не превосходящие по модулю 3000. Радиус – натуральное число.
Выведите одно число – номер дерева (деревья нумеруются начиная с 1 в порядке задания их во входных данных), которое окажется не огорожено. Если забор треугольной формы, огораживающий ровно два дерева, построить невозможно, выведите число 0. Если существует несколько решений, выведите любое.
Кодовый замок состоит из \(N\) рычажков, каждый из которых может быть установлен в любое из \(K\) положений, обозначенных натуральными числами от 1 до \(K\). Известно, что для того чтобы открыть замок, нужно, чтобы сумма положений любых трех последовательных рычажков была равна \(K\).
Два рычажка уже установлены в некоторые положения, и их переключать нельзя. Рычажок с номером \(p_1\) установлен в положение \(v_1\), а рычажок \(p_2\) – в положение \(v_2\).
Напишите программу, которая определит, сколькими способами можно установить остальные рычажки, чтобы открыть замок.
Вводятся натуральные числа \(N\), \(K\), \(p_1\), \(v_1\), \(p_2\), \(v_2\). 3 ≤ \(N\) ≤ 100 000, 3 ≤ \(K\) ≤ 100 000, \(p_1\) ≠ \(p_2\), 1 ≤ \(p_1\) ≤ \(N\), 1 ≤ \(p_2\) ≤ \(N\), 1 ≤ \(v_1\) ≤ \(K\), 1 ≤ \(v_2\) ≤ \(K\).
Выведите одно число — количество искомых комбинаций или 0, если, соблюдая все условия, замок открыть невозможно.
3 3 1 1 2 1
1
3 3 1 1 3 2
0
Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
* первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
* далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
* в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
* внутри смайлика не может встречаться никаких других символов.
Например, нижеприведенные последовательности являются смайликами:
:) ;---------[[[[[[[[ в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики): :-)] ;-- -) ::-( :-() В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов.
Выведите одно число — количество смайликов, которые встречаются в тексте.
:);------[[[[[]
2
В классе учатся N человек. Классный руководитель получил указание направить на субботник R бригад по С человек в каждой.
Все бригады на субботнике будут заниматься переноской бревен. Каждое бревно одновременно несут все члены одной бригады. При этом бревно нести тем удобнее, чем менее различается рост членов этой бригады.
Числом неудобства бригады будем называть разность между ростом самого высокого и ростом самого низкого членов этой бригады (если в бригаде только один человек, то эта разница равна 0). Классный руководитель решил сформировать бригады так, чтобы максимальное из чисел неудобства сформированных бригад было минимально. Помогите ему в этом!
Рассмотрим следующий пример. Пусть в классе 8 человек, рост которых в сантиметрах равен 170, 205, 225, 190, 260, 130, 225, 160, и необходимо сформировать две бригады по три человека в каждой. Тогда одним из вариантов является такой:
1 бригада: люди с ростом 225, 205, 225
2 бригада: люди с ростом 160, 190, 170
При этом число неудобства первой бригады будет равно 20, а число неудобства второй — 30. Максимальное из чисел неудобств будет 30, и это будет наилучший возможный результат.
Формат входных данных
Сначала вводятся натуральные числа N, R и C — количество человек в классе, количество бригад и количество человек в каждой бригаде (1 ≤ R∙C ≤ N ≤ 100 000). Далее вводятся N целых чисел — рост каждого из N учеников. Рост ученика — натуральное число, не превышающее 1 000 000 000.
Формат выходных данных
Выведите одно число — наименьше возможное значение максимального числа неудобства сформированных бригад.
8 2 3 170 205 225 190 260 130 225 160
30
Слова в языке Мумба-Юмба могут состоять только из букв \(a\), \(b\) и при этом:
* никогда не содержат двух букв \(b\) подряд,
* ни в одном слове никогда не встречается три одинаковых подслова подряд. Например, по этому правилу в язык Мумба-Юмба не могут входить слова aaa (так как три раза подряд содержит подслово a), ababab (так как три раза подряд содержит подслово ab), aabababa (также три раза подряд содержит подслово ab).
Все слова, удовлетворяющие вышеописанным правилам, входят в язык Мумба-Юмба.
Напишите программу, которая подсчитает количество слов длины ровно \(K\) символов в языке племени Мумба-Юмба.
Вводится одно число \(K\) (1 ≤ \(K\) ≤ 100 000)
Выведите одно число — количество слов в этом языке длины \(K\).