Страница: << 155 156 157 158 159 160 161 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Цикл лекций в университете Флатландии посвящен изучению последовательностей.

Профессор называет последовательность целых чисел \(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 \le n \le 300 000\)).

Вторая строка содержит \(n\) целых чисел \(b_1, b_2, …, b_n (–10^9 \le b_i ≤ 10^9 )\).

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

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

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

В приведенном примере оптимальной является, например, гармоничная последовательность [1, 2, 1, –1].

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

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

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

\(n = 3, –10 \le b_i ≤ 10\)

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

\(3 \le n \le 500, –100 \le b_i \le 100\)

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

\(3 \le n \le 100 000, –100 \le b_i \le 100\)

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

\(3 \le n \le 1000, –10^9 \le b_i \le 10^9\)

Подзадача 5 (40 баллов)

\(3 \le n \le 300000, –10^9 \le b_i \le 10^9\)

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

Коля Герасимов очень любит кефир, и в своём 1984 году он освоил все тонкости покупки этого чудесного напитка. Но однажды, как вам, наверное, известно, он попал в далёкий 2084 год, где покупка кефира представляет собой более сложный процесс.

Будущее будущим, а кушать хочется всегда, поэтому Коля отправился в местную молочную лавку. В 2084 году кефир продают в литровых пластиковых бутылках по \(a\) копеек за штуку и в литровых бутылках из стекла по \(b\) копеек за штуку. При этом пустую стеклянную бутылку можно сдать и получить назад \(c\) (\(c < b\)) копеек, а пластиковую бутылку сдать нельзя.

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

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

В первой строке входных данных задаётся число \(n\) (\(1\leq n \leq 10^{18}\))— количество копеек у Коли в кармане.

В строках со второй по четвертую по одному записаны числа \(a\), \(b\) и \(c\) (\(1 \leq a \leq 10^{18}\), \(1 \leq c < b \leq 10^{18}\))— стоимость пластиковой бутылки с кефиром, стоимость стеклянной бутылки с кефиром и сколько копеек можно получить, сдав пустую стеклянную бутылку, соответственно.

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

Выведите одно целое число — максимальное количество литров кефира, которое сможет выпить Коля.

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

В первом примере Коля может купить один литр в стеклянной бутылке, затем сдать эту бутылку и снова купить стеклянную бутылку. Таким образом, он сможет выпить два литра кефира.

Во втором примере Коля может купить две пластиковые бутылки и получить два литра кефира или купить сначала один литр в стекле, потом сдать бутылку и купить одну бутылку в пластике. В обоих случаях он купит два литра кефира.

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

Давным-давно в далёкой-далёкой галактике противоборствовали две огромные IT-корпорации: Pineapple и Gogol. Противостояние длится уже многие годы, но близится переломный момент: компания Gogol разработала абсолютно новое устройство, не имеющее аналогов~--- планшет Lastus 3000.

В этом устройстве используется впервые созданный искусственный интеллект (ИИ). Члены компании Pineapple пытались всеми силами отложить выход нового девайса. В конце концов, за неделю до выхода Lastus 3000 на рынок юристы обнаружили, что название искусственного интеллекта очень похоже на название телефона, который выпустила компания Pineapple 200 лет назад. Так как компания Pinapple обладает авторским правом на это название, она потребовала изменить имя искусственного интеллекта.

Pineapple утверждает, что название их телефона присутствует в качестве подстроки в имени ИИ. Название этой технологии уже было выгравировано на всех планшетах, поэтому директор Gogol предложил вместо некоторых букв в названии ИИ поставить символ "#". Так как это довольно затратно, надо найти минимальное количество символов, которые нужно заменить на "#", чтобы имя ИИ больше не содержало название телефона Pineapple в качестве подстроки. Помогите компании Gogol решить эту задачу.

Подстрокой называется непустая последовательность подряд идущих символов строки.

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

Первая строка входных данных содержит название ИИ компании Gogol, длина названия не превосходит \(100\,000\) символов. Вторая строка входных данных содержит название телефона компании Pineapple, её длина не превосходит \(30\) символов. Обе строки непустые и содержат только маленькие буквы английского алфавита.

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

Требуется вывести минимальное количество букв, которое надо заменить на символ "#" в названии ИИ, чтобы оно не содержало название телефона в качестве подстроки.

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

В первом примере название ИИ можно заменить на «int#llect».

Во втором примере название можно не менять.

В третьем примере название ИИ можно поменять на «s#ris#ri». Обойтись меньшим количеством замен не получится.

Примеры
Входные данные
intellect
tell
Выходные данные
1
Входные данные
google
apple
Выходные данные
0
Входные данные
sirisiri
sir
Выходные данные
2
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Чего не сделаешь ради того, чтобы выделиться из серой массы. Кто-то танцует, кто-то учит наизусть правила русского языка, кто-то пытается стать выдающимся спортивным программистом, ну а кто-то коллекционирует забавные математические объекты.

Алиса как раз из таких коллекционеров. Сейчас она очень хочет заполучить \(k\)-специальную табличку. Напомним, что табличка \(n \times n\) называется \(k\)-специальной, если выполнены следующие три условия:

* каждое число от \(1\) до \(n^2\) встречается в ней ровно \(1\) раз;

* в каждой строке числа идут в возрастающем порядке;

* сумма чисел, расположенных в \(k\)-м столбце, максимальна.

Помогите Алисе! Отыщите хотя бы одну \(k\)-специальную табличку размера \(n \times n\). Строки и столбцы нумеруются от \(1\) до \(n\), при этом строки нумеруются сверху вниз, а столбцы слева направо.

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

В первой строке входных данных записаны два числа \(n\) и \(k\) (\(1 \leq n \leq 500, 1 \leq k \leq n\)) — размер искомой таблички и номер столбца, сумма в котором должна быть максимальна.

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

В первой строке выведите сумму чисел в \(k\)-м столбце искомой таблички.

В следующих \(n\) строках выведите саму табличку: сначала \(n\) элементов первой строки, затем \(n\) элементов второй и так далее.

Если искомых табличек несколько, то выведите любую из них.

Примеры
Входные данные
4 1
Выходные данные
28
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Входные данные
5 3
Выходные данные
85
1 2 11 12 13
3 4 14 15 16
5 6 17 18 19
7 8 20 21 22
9 10 23 24 25
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

Рассмотрим операцию переворота целого положительного числа: при её применении десятичные цифры числа записываются в обратном порядке, затем если у результата есть ведущие нули, они отбрасываются. Например, при перевороте из числа \(123\) получается число \(321\), из числа \(130\)— число \(31\), а из числа \(31\) — число \(13\).

Оксана Филипповна загадала целое положительное число \(a\) без ведущих нулей и применила к нему операцию переворота, получилось число \(a_r\). После этого она сложила \(a\) и \(a_r\), дала Вите их сумму \(n\) и попросила его найти исходное число \(a\).

Поскольку в предложенном учительницей примере числа \(a\) и \(a_r\) были небольшими, Витя быстро угадал правильный ответ и задумался над построением общего алгоритма для решения задачи. Его интересует, как по заданному числу \(n\) найти какое-либо \(a\) или определить, что такого \(a\) не существует. Помогите Вите разработать такой алгоритм.

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

В первой строке входных данных находится одно целое число \(n\) (\(1 \leq n \leq 10^{100\,000}\)).

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

В случае если не существует ни одного целого положительного числа \(a\) без ведущих нулей такого, что \(a + a_r = n\), выведите единственное число \(0\).

В противном случае выведите подходящее \(a\) без пробелов и ведущих нулей. Если удовлетворяющих условию вариантов несколько, выведите любой.

Для лучшего понимания формата вывода рекомендуется изучить примеры.

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

В первом примере \(4 = 2 + 2\), \(a = 2\) — единственный вариант. Во втором примере \(11 = 10 + 1\), \(a = 10\) — единственный вариант. Обратите внимание, что вариант \(a = 01\) не подходит, поскольку \(a\) не может иметь ведущие нули. Легко проверить, что в третьем примере ни одного подходящего \(a\) не существует. В четвёртом примере \(33 = 30 + 3 = 12 + 21\), и существует три варианта для \(a\): \(a = 30\), \(a = 12\), \(a = 21\). Любой из них является правильным ответом.

Примеры
Входные данные
4
Выходные данные
2
Входные данные
11
Выходные данные
10
Входные данные
5
Выходные данные
0
Входные данные
33
Выходные данные
21

Страница: << 155 156 157 158 159 160 161 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест