Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 72 задач <---
    2009(8 задач)
    2010(8 задач)
    2011(8 задач)
    2012(8 задач)
    2013(8 задач)
    2014(8 задач)
    2015(8 задач)
    2016(8 задач)
    2017(8 задач)
    Московская областная олимпиада(13 задач)
    Кировская открытая областная олимпиада(21 задач)
    Санкт-Петербург(3 задач)
Страница: << 9 10 11 12 13 14 15 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

Дмитрий срубает по A деревьев в день, но каждый \(K\)-й день он отдыхает и не срубает ни одного дерева. Таким образом, Дмитрий отдыхает в \(K\)-й, 2\(K\)-й, 3\(K\)-й день, и т.д.

Федор срубает по B деревьев в день, но каждый \(M\)-й день он отдыхает и не срубает ни одного дерева. Таким образом, Федор отдыхает в \(M\)-й, 2\(M\)-й, 3\(M\)-й день, и т.д.

Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, они срубают \(A\) + \(B\) деревьев, в дни, когда отдыхает только Федор — \(A\) деревьев, а в дни, когда отдыхает только Дмитрий — \(B\) деревьев. В дни, когда оба лесоруба отдыхают, ни одно дерево не срубается.

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

Требуется написать программу, которая по заданным целым числам \(A\), \(K\), \(B\), \(M\) и \(X\) определяет, за сколько дней все деревья в лесу будут вырублены.

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

Входной файл содержит пять целых чисел, разделенных пробелами: \(A\), \(K\), \(B\), \(M\) и \(X\) (1 ≤ \(A\), \(B\) ≤ \(10^9\) , 2 ≤ \(K\), \(M\) ≤ 1018, 1 ≤ \(X\) ≤ 1018).

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

Выходной файл должен содержать одно целое число — искомое количество дней.

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

В приведенном примере лесорубы вырубают 25 деревьев за 7 дней следующим образом:
* 1-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 5 деревьев;
* 2-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 10 деревьев;
* 3-й день: Дмитрий срубает 2 дерева, Федор отдыхает, итого 12 деревьев;
* 4-й день: Дмитрий отдыхает, Федор срубает 3 дерева, итого 15 деревьев;
* 5-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 20 деревьев;
* 6-й день: Дмитрий срубает 2 дерева, Федор отдыхает, итого 22 дерева;
* 7-й день: Дмитрий срубает 2 дерева, Федор срубает оставшееся 1 дерево, итого все 25 деревьев срублены.
Внимание! Тест из примера не подходит под ограничения для подзадач 2 и 3, но решение принимается на проверку только в том случае, если оно выводит правильный ответ на тесте из примера. Решение должно выводить правильный ответ на тест даже, если оно рассчитано на решение только каких-либо из подзадач 2 и 3

Система оценки и описание подзадач

Подзадача 1 (32 балла)
1 ≤ \(X\) ≤ 1000, 1 ≤ \(A\), \(B\) ≤ 1000, 2 ≤ \(K\), \(M\) ≤ 1000
Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
Подзадача 2 (10 баллов)
1 ≤ \(X\) ≤ 1018
\(X\) < \(K\)
\(X\) < \(M\)
При решении этой подзадачи можно считать, что лесорубы не отдыхают.
Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
Подзадача 3 (10 баллов)
1 ≤ \(X\) ≤ 1018
Дополнительно к приведенным ограничениям выполняется условие \(K\) = \(M\).
Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
Подзадача 4 (48 баллов)
1 ≤ \(X\) ≤ 1018, 1 ≤ \(A\), \(B\) ≤ \(10^9\), 2 ≤ \(K\), \(M\) ≤ 1018
В этой подзадаче 16 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.

Примеры
Входные данные
2 4 3 3 25
Выходные данные
7
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Петя участвует в конкурсе, в котором разыгрывается \(n\) призов. Призы пронумерованы от 1 до \(n\).

По итогам конкурса участник может набрать от 2 до \(n\) баллов. Если участник наберет \(k\) баллов, то он получит один из призов с номером от 1 до \(k\). Перед тем, как участник выберет свой приз, ведущий конкурса удаляет один из призов из списка. Затем участник может выбрать любой приз из оставшихся \(k\) – 1.

Список призов стал известен Пете. Петя определил для каждого приза его ценность, для \(i\)-го приза она задается целым числом \(a_i\) .

Требуется написать программу, которая по заданным ценностям призов определяет для каждого \(k\) от 2 до \(n\), приз с какой максимальной ценностью гарантированно достанется Пете, если он наберет в конкурсе \(k\) баллов.

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

Первая строка входного файла содержит число \(n\) (\(2 \le n \le 100 000\)). Вторая строка этого файла содержит n целых чисел: \(a_1, a_2, …, a_n\) (\(1 \le a_i ≤ 10^9\) ).

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

Выходной файл должен содержать одну строку, содержащую \(n\) – 1 целых чисел: для каждого \(k\) от 2 до \(n\) должна быть выведена ценность приза, который достанется Пете, если он наберет \(k\) баллов.

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

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

Подзадача 1 (24 балла)

\(n \le 100\)

Подзадача 2 (24 балла)

\(n \le 5000\)

Подзадача 3 (52 балла)

\(n \le 100000\)

Примеры
Входные данные
5
1 3 4 2 5
Выходные данные
1 3 3 4 
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Для освоения Марса требуется построить исследовательскую базу. База должна состоять из \(n\) одинаковых модулей, каждый из которых представляет собой прямоугольник.

Каждый модуль представляет собой жилой отсек, который имеет форму прямоугольника размером \(a \times b\) метров. Для повышения надежности модулей инженеры могут добавить вокруг каждого модуля слой дополнительной защиты. Толщина этого слоя должна составлять целое число метров, и все модули должны иметь одинаковую толщину дополнительной защиты. Модуль с защитой, толщина которой равна \(d\) метрам, будет иметь форму прямоугольника размером \((a + 2d) \times (b + 2d)\) метров.

Все модули должны быть расположены на заранее подготовленном прямоугольном поле размером \(w \times h\) метров. При этом они должны быть организованы в виде регулярной сетки: их стороны должны быть параллельны сторонам поля, и модули должны быть ориентированы одинаково.

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

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

Строка содержит пять разделенных пробелами целых чисел: \(n\), \(a\), \(b\), \(w\) и \(h\) (\(1 \le n, a, b, w, h \le 10^{18}\)). Гарантируется, что без дополнительной защиты все модули можно разместить в поселении описанным образом.

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

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

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

В первом примере можно установить дополнительную защиту толщиной 2 метра и разместить модули на поле, как показано на рисунке.

Во втором примере жилой отсек имеет размер \(5 \times 5\) метров, а поле – размер \(6 \times 6\) метров. Добавить дополнительную защиту к модулю нельзя.

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

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

\(1 \le n \le 1000, 1 \le a, b, w, h \le 1000\).

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

Подзадача 2 (23 балла)

\(1 \le n \le 1000, 1 \le a, b, w, h \le 10^9\).

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

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

\(1 \le n \le 10^9 , 1 \le a, b, w, h \le 10^{18}\).

В этой подзадаче 8 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.

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

\(1 \le n \le 10^{18} , 1 \le a, b, w, h \le 10^{18}\).

В этой подзадаче 9 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.

Примеры
Входные данные
11 2 3 21 25
Выходные данные
2
Входные данные
1 5 5 6 6
Выходные данные
0
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Рассмотрим строку \(s\), состоящую из строчных букв латинского алфавита. Примером такой строки является, например, строка «abba».

Подстрокой строки \(s\) называется строка, составленная из одного или нескольких подряд идущих символов строки \(s\). Обозначим как \(W(s)\) множество, состоящее из всех возможных подстрок строки \(s\). При этом каждая подстрока входит в это множество не более одного раза, даже если она встречается в строке \(s\) несколько раз.

Например, \(W\)(«abba») = {«a», «b», «ab», «ba», «bb», «abb», «bba», «abba»}.

Подпоследовательностью строки \(s\) называется строка, которую можно получить из \(s\) удалением произвольного числа символов. Обозначим как \(Y\)(\(s\)) множество, состоящее из всех возможных подпоследовательностей строки \(s\). Аналогично \(W\)(\(s\)), каждая подпоследовательность строки \(s\) включается в \(Y\)(\(s\)) ровно один раз, даже если она может быть получена несколькими способами удаления символов из строки \(s\). Поскольку любая подстрока строки \(s\) является также ее подпоследовательностью, то множество \(Y\)(\(s\)) включает в себя \(W\)(\(s\)), но может содержать также и другие строки.

Например, \(Y\)(«abba») = \(W\)(«abba») ∪ {«aa», «aba»}. Знак ∪ обозначает объединение множеств.

Будем называть строку \(s\) странной, если для нее \(W\)(\(s\)) = \(Y\)(\(s\)). Так, строка «abba» не является странной, а, например, строка «abb» является, так как для нее \(W\)(«abb») = \(Y\)(«abb») = {«a», «b», «ab», «bb», «abb»}.

Будем называть странностью строки число ее различных странных подстрок. При вычислении странности подстрока считается один раз, даже если она встречается в строке \(s\) в качестве подстроки несколько раз. Так, для строки «abba» ее странность равна 7, любая ее подстрока, кроме всей строки, является странной.

Требуется написать программу, которая по заданной строке \(s\) определяет ее странность.

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

Входной файл содержит строку \(s\), состоящую из строчных букв латинского алфавита. Строка имеет длину от 1 до 200 000.

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

Выходной файл должен содержать одно целое число: странность заданной во входном файле строки.

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

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

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

Строка \(s\) состоит только из букв «a» и «b». Длина строки \(s\) не превышает 50.

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

Длина строки \(s\) не превышает 50.

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

Длина строки \(s\) не превышает 1000.

Подзадача 4 (34 балла)

Длина строки \(s\) не превышает 200 000.

Примеры
Входные данные
abba
Выходные данные
7
ограничение по времени на тест
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

Страница: << 9 10 11 12 13 14 15 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест