Темы --> Информатика --> Другое --> Конструктив
---> 21 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 1 2 3 4 5 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Даны три строки, состоящие из строчных латинских букв. С этими строками можно производить следующие операции: либо заменить один символ строки на два таких же символа (например, заменить символ «a» на «aa»), либо, наоборот, заменить два подряд идущих одинаковых символа на один такой же символ.

Необходимо при помощи этих операций сделать все три строки равными какой-то другой общей строке S либо определить, что это сделать невозможно. При этом нужно минимизировать общее количество операций.

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

Программа получает на вход три строки, состоящие из строчных букв латинского алфавита. Длина каждой строки не превышает 100 символов.

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

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

Примечание

Решение, которое выводит правильный ответ только на тестах из условия и тех тестах, на которых ответом является слово IMPOSSIBLE, будет оцениваться в 0 баллов.

Примеры
Входные данные
aaaza
aazzaa
azzza
Выходные данные
aazza
Входные данные
xy
xxyy
yx
Выходные данные
IMPOSSIBLE
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Во владениях короля Флатландии находится прямая дорога длиной \(n\) километров, по одну сторону от которой расположен огромный лесной массив. Король Флатландии проникся идеями защиты природы и решил превратить свой лесной массив в заповедник. Но сыновья стали сопротивляться: ведь им хотелось получить эти земли в наследство.

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

  • каждый участок должен иметь форму квадрата, длина стороны которого выражается целым положительным числом. Одна из сторон каждого квадрата должна лежать на дороге. Пусть участки имеют размеры \(a \times a, b \times b\) и \(c \times c\);
  • стороны квадратов должны полностью покрывать дорогу: величина a + b + c должна быть равна \(n\);
  • участок младшего сына должен быть строго меньше участка среднего сына, а участок среднего сына должен, в свою очередь, быть строго меньше участка старшего сына, то есть должно выполняться неравенство \(a < b < c\);
  • суммарная площадь участков \(a^2 + b^2+ c^2\) должна быть минимальна.
Требуется написать программу, которая по заданной длине дороги определяет размеры участков, которые следует выделить сыновьям короля.

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

Входной файл содержит одно целое число \(n\) (\(6 \le n \le 10^9\) ).

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

Выходной файл должен содержать три целых положительных числа, разделенных пробелами: \(a\), \(b\) и \(c\) – длины сторон участков, которые следует выделить младшему, среднему и старшему сыну, соответственно. Если оптимальных решений несколько, разрешается вывести любое.

Пояснение к примеру

Описание подзадач и системы оценивания

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

Подзадача 1 (25 баллов)

\(n \le 50\)

Подзадача 2 (25 баллов)

\(n \le 2000\)

Подзадача 3 (25 баллов)

\(n \le 40000\)

Подзадача 4 (25 баллов)

\(n \le 10^9\)

Примеры
Входные данные
6
Выходные данные
1 2 3
#113327
  
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Два студента, Адам и Антон, отмечают двухлетний юбилей несдачи их экзамена по математической логике. После тщательного поиска в местном супермаркете они купили прямоугольный торт и две свечи. Позже в университетском городке Адам поставил свечи в различные целочисленные точки пирога и дал нож Антону, чтобы он разрезал торт. Срез должен начинаться и заканчиваться в целочисленных точках на краях пирога, и не должен касаться свеч. Кроме того, каждая часть должна содержать ровно одну свечу. Пожалуйста, помогите Антону найти начальную и конечную точки разреза.

Примеры
Входные данные
7 3 2 2 3 2
Выходные данные
2 0 3 3
#113328
  
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Боб нашёл отличную задачу для детей из его старой книги по математике. В ней сказано: Есть 10 детей, стоящих в кругу, 5 из них стоят рядом с мальчиком, и 7 из них стоят рядом с девочкой. Как такое могло быть? Вот решение этой задачи. Если 4 мальчика и 6 девочек стоят следующим образом: BGBGBGBGGG, Здесь 5 детей стоят рядом с мальчиком (здесь они выделены: BGBGBGBGGG), и 7 детей, которые стоят рядом с девочкой (BGBGBGBGGG). Теперь Боб хочет решить расширенную версию этой задачи: Есть n детей, стоящих в кругу, x из них стоят рядом с мальчиком, а y из них стоят рядом с девочкой. Как такое могло быть? Помогите Бобу написать эту программу в расширенной версии.

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

1

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

1

Примеры
Входные данные
10 5 7
Выходные данные
GBGGGBGBGB
Входные данные
10 3 8
Выходные данные
Impossible
#113562
  
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Петрик обожает конструкторы. В этот раз он захотел поиграть с набором прямоугольных брусков. Этот набор состоит из n брусков, причем содержит ровно по одному бруску каждого из размеров 1 * 1, 1 * 2, ..., 1 * n. Петрик хочет выбрать некоторые бруски из набора и построить из них пирамидку. Пирамидка состоит из одного или более уровней высотой в один кубик, в каждом уровне бруски расположены горизонтально вплотную друг к другу меньшей стороной, а самый левый брусок в уровне расположен вплотную к стене, и каждый следующий уровень не более длиной, чем предыдущий (считая снизу вверх). При этом Петрик считает, что пирамидка будет более устойчивой, если каждый брусок в каждом уровне, кроме низкого, будет лежать не менее чем на двух брусках с предыдущего уровня. Например, такая конструкция не является пирамидкой, потому что брусок 1 * 2 лежит только на одном бруске: Найдите пирамидку с наибольшим количеством уровней, которую можно построить из некоторых брусков из данного набора с n брусков. Если таких пирамидок несколько, то выведите любую.

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

Одно целое число n ( 1 ≤ n ≤ 10 5 )

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

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

Примеры
Входные данные
5
Выходные данные
2
4 1 3 4 5 
1 2 

Страница: << 1 2 3 4 5 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест