Задачи 2 тура регионального олимпиады по информатике 2016
5. Три сына
Ограничения: время – 1s/2s, память – 256MiB Ввод: division.in или стандартный ввод Вывод: division.out или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Во владениях короля Флатландии находится прямая дорога длиной n километров, по одну сторону от которой
расположен огромный лесной массив. Король Флатландии проникся идеями защиты природы и решил превратить свой
лесной массив в заповедник. Но сыновья стали сопротивляться: ведь им хотелось получить эти земли в наследство.
У короля три сына: младший, средний и старший. Король решил, что в заповедник не войдут участки лесного массива,
которые он оставит сыновьям в наследство. При составлении завещания король хочет, чтобы для участков выполнялись
следующие условия:
- каждый участок должен иметь форму квадрата, длина стороны которого выражается целым положительным числом. Одна из сторон каждого квадрата должна лежать на дороге. Пусть участки имеют размеры a , b times b и c times c;
- стороны квадратов должны полностью покрывать дорогу: величина a + b + c должна быть равна n;
- участок младшего сына должен быть строго меньше участка среднего сына, а участок среднего сына должен, в свою очередь, быть строго меньше участка старшего сына, то есть должно выполняться неравенство a < b < c;
- суммарная площадь участков a^2 + b^2 + c^2 должна быть минимальна.
Требуется написать программу, которая по заданной длине дороги определяет размеры участков, которые следует выделить сыновьям короля.
Формат входного файла
Входной файл содержит одно целое число n (6 ≤ n ≤ 10^9).
Формат выходного файла
Выходной файл должен содержать три целых положительных числа, разделенных пробелами: a, b и c – длины сторон участков, которые следует выделить младшему, среднему и старшему сыну, соответственно. Если оптимальных решений несколько, разрешается вывести любое.
Описание подзадач и системы оценивания
В этой задаче четыре подзадачи. Баллы за подзадачу начисляются только в случае, если все тесты для данной подзадачи пройдены.
Подзадача 1 (25 баллов)
n ≤ 50.
Подзадача 2 (25 баллов)
n ≤ 2000.
Подзадача 3 (25 баллов)
n ≤ 40 000.
Подзадача 4 (25 баллов)
n ≤ 10^9.
По запросу сообщается результат окончательной проверки на каждом тесте.
Источник: региональный этап Всероссийской олимпиады по информатике 2015/2016, http://neerc.ifmo.ru/school/
6. Гипершашки
Ограничения: время – 1s/2s, память – 256MiB Ввод: game.in или стандартный ввод Вывод: game.out или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Андрей работает судьей на чемпионате по гипершашкам. В каждой игре в гипершашки участвует три игрока. По ходу
игры каждый из игроков набирает некоторое положительное целое число баллов. Если после окончания игры первый игрок
набрал a баллов, второй – b, а третий – c, то говорят, что игра закончилась со счетом a:b:c.
Андрей знает, что правила игры гипершашек устроены таким образом, что в результате игры баллы любых двух игроков
различаются не более чем в k раз.
После матча Андрей показывает его результат, размещая три карточки с очками игроков на специальном табло.
Для этого у него есть набор из n карточек, на которых написаны числа x_1,\ x_2,\ …,\ x_n. Чтобы выяснить,
насколько он готов к чемпионату, Андрей хочет понять, сколько различных вариантов счета он сможет показать на
табло, используя имеющиеся карточки.
Требуется написать программу, которая по числу k и значениям чисел на карточках, которые имеются у Андрея,
определяет количество различных вариантов счета, которые Андрей может показать на табло.
Формат входного файла
Первая строка входного файла содержит два целых числа: n и k (3 ≤ n ≤ 100 000, 1 ≤ k ≤ 10^9).
Вторая строка входного файла содержит n целых чисел x_1,\ x_2,\ …,\ x_n (1 ≤ x_i ≤ 10^9).
Формат выходного файла
Выходной файл должен содержать одно целое число - искомое количество различных вариантов счета.
Пример ввода
5 2
1 1 2 2 3
Пояснение к примеру
В приведенном примере Андрей сможет показать следующие варианты счета: 1:1:2, 1:2:1,
2:1:1, 1:2:2, 2:1:2, 2:2:1, 2:2:3, 2:3:2, 3:2:2. Другие тройки чисел, которые
можно составить с использованием имеющихся карточек, не удовлетворяют заданному
условию, что баллы любых двух игроков различаются не более чем в k\ =\ 2 раза.
Описание подзадач и системы оценивания
В этой задаче четыре подзадачи. Баллы за подзадачу начисляются только в случае, если все
тесты для данной подзадачи пройдены.
Внимание! Тест из примера не подходит под ограничения для подзадач 1 и 3, но решение
принимается на проверку только в том случае, если оно выводит правильный ответ на тесте
из примера. Решение должно выводить правильный ответ на тест, даже если оно рассчитано
на решение только каких-либо из подзадач 1 и 3.
Подзадача 1 (15 баллов)
3 ≤ n ≤ 100 000, k\ =\ 1, 1 ≤ x_i ≤ 100 000
Подзадача 2 (23 балла)
3 ≤ n ≤ 100, 1 ≤ k ≤ 100, 1 ≤ x_i ≤ 100
Подзадача 3 (30 баллов)
3 ≤ n ≤ 100 000, 1 ≤ k ≤ 10^9, 1 ≤ x_i ≤ 10^9, все x_i различны.
Подзадача 4 (32 балла)
3 ≤ n ≤ 100 000, 1 ≤ k ≤ 10^9, 1 ≤ x_i ≤ 10^9
По запросу сообщается результат окончательной проверки на каждом тесте.
Источник: региональный этап Всероссийской олимпиады по информатике 2015/2016, http://neerc.ifmo.ru/school/
7. Интересные числа
Ограничения: время – 1s/2s, память – 256MiB Ввод: numbers.in или стандартный ввод Вывод: numbers.out или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Софья считает число интересным, если его цифры идут в неубывающем порядке. Например, числа 123, 1111
или 888999 – интересные.
Софья заинтересовалась, сколько существует интересных положительных чисел, лежащих в
диапазоне от L до R включительно. Это число может оказаться довольно большим для больших L и R, поэтому
Софья хочет найти остаток от деления этого числа на 10^9\ +\ 7.
Требуется написать программу, которая по заданным L и R определяет количество интересных чисел,
лежащих в диапазоне от L до R включительно, и выводит остаток от деления этого числа на 10^9\ +\ 7.
Формат входного файла
Входной файл содержит две строки. Первая строка содержит число L, вторая строка содержит число R
(1 ≤ L ≤ R ≤ 10^{100}).
Формат выходного файла
Выходной файл должен одно целое число – остаток от деления количества интересных чисел, лежащих в диапазоне
от L до R включительно, на 10^9 + 7.
Описание подзадач и системы оценивания
Подзадача 1 (21 балл)
L\ =\ 1, R ≤ 1000
Баллы за подзадачу начисляются только в случае, если все тесты подзадачи пройдены.
Подзадача 2 (до 22 баллов)
1 ≤ L ≤ R ≤ 10^{18}
В этой подзадаче 11 тестов, каждый тест оценивается в 2 балла. Баллы за каждый тест начисляются независимо.
Подзадача 3 (до 24 баллов)
L\ =\ 1, R\ =\ 10^k для некоторого целого k, 2\ ≤ k ≤ 100.
В этой подзадаче 8 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.
Подзадача 4 (до 33 баллов)
1 ≤ L ≤ R ≤ 10^{100}
В этой подзадаче 11 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.
Источник: региональный этап Всероссийской олимпиады по информатике 2015/2016, http://neerc.ifmo.ru/school/
8. Гармоничная последовательность
Ограничения: время – 1s/2s, память – 256MiB Ввод: sequence.in или стандартный ввод Вывод: sequence.out или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Цикл лекций в университете Флатландии посвящен изучению последовательностей.
Профессор называет последовательность целых чисел a_1,\ a_2,\ …,\ a_n гармоничной, если каждое число,
кроме a_1 и a_n, равно сумме соседних: a_2\ =\ a_1\ +\ a_3, a_3\ =\ a_2\ +\ a_4, …, a_{n-1}\ =\ a_{n-2}\ +\ a_n.
Например, последовательность [1,\ 2,\ 1,\ -1] является гармоничной, поскольку 2\ =\ 1\ +\ 1, и 1 = 2\ +\ (-1).
Рассмотрим последовательности равной длины: A\ =\ [a_1,\ a_2,\ …,\ a_n] и B\ =\ [b_1,\ b_2,\ …,\ b_n].
Расстоянием между этими последовательностями будем называть величину
d(A, B) = |a_1\ -\ b_1|\ +\ |a_2\ -\ b_2|\ +\ …\ +\ |a_n\ -\ b_n|. Например,
d([1,\ 2\ ,1,\ -1],\ [1,\ 2,\ 0,\ 0])\ =\ |1\ -\ 1|\ +\ |2\ -\ 2|\ +\ |1\ -\ 0|\ +\ |-1\ -\ 0|\ =\ 0\ +\ 0\ +\ 1\ +\ 1\ =\ 2.
В конце лекции профессор написал на доске последовательность из n целых чисел
B =\ [b_1,\ b_2,\ …,\ b_n] и попросил студентов в качестве домашнего задания найти гармоничную последовательность
A\ =\ [a_1,\ a_2,\ ..,\ a_n], такую, что d(A, B) минимально. Чтобы облегчить себе проверку, профессор просит
написать в качестве ответа только искомое минимальное расстояние d(A,\ B).
Требуется написать программу, которая по заданной последовательности B определяет, на каком минимальном
расстоянии от последовательности B найдется гармоничная последовательность A.
Формат входного файла
Первая строка входного файла содержит целое число n - количество элементов в последовательности (3 ≤ n ≤ 300 000).
Вторая строка содержит n целых чисел b_1,\ b_2,\ …,\ b_n (-10^9 ≤ b_i ≤ 10^9).
Формат выходного файла
Выходной файл должна содержать одно целое число: минимальное возможное расстояние от
последовательности во входном файле до гармоничной последовательности.
Пояснение к примеру
В приведенном примере оптимальной является, например, гармоничная последовательность [1, 2, 1, –1].
Описание подзадач и системы оценивания
В этой задаче пять подзадач. Баллы за подзадачу начисляются только в случае, если все тесты для данной подзадачи пройдены.
Внимание! Тест из примера не подходит под ограничения для подзадачи 1, но решение принимается на проверку только в том случае, если оно выводит правильный ответ на тесте из примера. Решение должно выводить правильный ответ на тест, даже если оно рассчитано на решение только подзадачи 1.
Подзадача 1 (14 баллов)
n\ =\ 3, -10 ≤ b_i ≤ 10
Подзадача 2 (14 баллов)
3 ≤ n ≤ 500, -100 ≤ b_i ≤ 100
Подзадача 3 (16 баллов)
3 ≤ n ≤ 100 000, -100 ≤ b_i ≤ 100
Подзадача 4 (16 баллов)
3 ≤ n ≤ 1000, -10^9 ≤ b_i ≤ 10^9
Подзадача 5 (40 баллов)
3 ≤ n ≤ 300 000, -10^9 ≤ b_i ≤ 10^9
По запросу сообщается баллы за каждую подзадачу.
Источник: региональный этап Всероссийской олимпиады по информатике 2015/2016, http://neerc.ifmo.ru/school/