Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Председатель жюри чемпионата по устному счету !A !B !C придумал новое задание для участников чемпионата. Исходно на доске выписывается n целых чисел: a1, a2, …, an. После этого участник должен выполнять команды двух типов:
Стереть i-е число с доски и записать вместо него число x. То есть, если на доске были записаны числа a1, a2, …, an,~ то после выполнения команды числа будут равны: a1, …, ai − 1, x, ai + 1, …, an.
Циклически сдвинуть последовательность чисел на k вправо. То есть, если на доске были записаны числа a1, a2, …, an, то после выполнения команды числа будут равны: an − k + 1, an − k + 2, …, an, a1, a2, …, an − k.
После выполнения каждой команды участник должен вычислить сумму всех чисел, записанных на доске, и сообщить ее жюри. Чтобы подготовиться проверять ответы участников, членам жюри необходимо самим вычислить требуемые суммы.
В первой строке записано целое число n — количество чисел, изначально записанных на доске (2 ≤ n ≤ 105).
Во второй строке через пробел записаны n целых чисел: a1, a2, …, an — числа, изначально выписанные на доске ( − 109 ≤ ai ≤ 109).
В третьей строке записано целое число q — количество команд, которые необходимо выполнить (1 ≤ q ≤ 105).
В каждой из следующих q строк записана очередная команда в следующем формате:
1 i x — это означает, что участник должен заменить i-е число последовательности на число x (1 ≤ i ≤ n; − 109 ≤ x ≤ 109).
2 k — это означает, что участник должен циклически сдвинуть последовательность чисел на k вправо (1 ≤ k < n).
В качестве ответа выведите q строк, в каждой из которых записано одно целое число.
В i-й строке должна быть записана сумма чисел на доске после выполнения первых i команд.
Обратите внимание, что ответ может быть достаточно большим и для его хранения потребуется 64-битный тип данных,
int64
в паскале, long long
в C++, long
в Java.
2 ≤ n ≤ 105
− 109 ≤ ai ≤ 109
1 ≤ q ≤ 105
1 ≤ i ≤ n; − 109 ≤ x ≤ 109
1 ≤ k < n
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
1 | 22 | 2 ≤ n ≤ 1 000, есть только команды первого типа | полная | |
2 | 17 | 2 ≤ n ≤ 1 000, во всех командах второго типа k = 1 | полная | |
3 | 23 | 2 ≤ n ≤ 1 000 | 1, 2 | полная |
4 | 38 | 1 — 3 | первая ошибка |
Рассмотрим пример из условия. Изначально последовательность записанных на доске чисел равна: 4, 1, 2, 1, 5, 3.
После первой команды последовательность циклически сдвигается на 3 элемента вправо. Новая последовательность: 1, 5, 3, 4, 1, 2. Сумма чисел равна: 1 + 5 + 3 + 4 + 1 + 2 = 16.
После второй команды необходимо заменить третий элемент последовательности на число 10. Новая последовательность: 1, 5, 10, 4, 1, 2. Сумма чисел равна: 1 + 5 + 10 + 4 + 1 + 2 = 23.
После третьей команды заменить четвертый элемент на число 4. Так как четвертый элемент уже равен 4, последовательность не изменяется. Сумма чисел также равна 23.
После четвертой команды последовательность циклически сдвигается на 1: 2, 1, 5, 10, 4, 1. Сумма чисел не изменилась.
Наконец, после пятой команды последовательность становится равна: − 10, 1, 5, 10, 4, 1. Сумма чисел в итоговой последовательности равна − 10 + 1 + 5 + 10 + 4 + 1 = 11.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Компания «Flatland Dynamics» разрабатывает прыгающего робота. Для испытания робота используется полигон, на котором организован круговой маршрут из n специальных платформ, пронумерованных от 1 до n. Расстояние между i-й и i + 1-й платформой равно di, аналогично расстояние между n-й и 1-й платформой равно dn.
Робот оснащен искусственным интеллектом и в процессе испытания учится прыгать все дальше. В любой момент времени робот характеризуется своей ловкостью — целым числом a. Робот может перепрыгнуть с платформы i на платформу i + 1, если a ≥ di. Аналогично, прыжок с n-й платформы на 1-ю возможен, если a ≥ dn. При этом после каждого прыжка ловкость робота увеличивается на~1.
Разработчики робота выбирают одну из платформ в качестве стартовой. Они считают эксперимент удачным, если робот может, совершив n прыжков от текущей платформы к следующей, завершить полный круг и вернуться на ту же платформу. Разработчикам необходимо выяснить, для какого минимального значения начальной ловкости робота им удастся провести эксперимент и с какой платформы роботу следует начать прыжки.
На первой строке ввода находится число n (3 ≤ n ≤ 107).
Вторая строка содержит одно целое число f, которое описывает формат, в котором задан массив расстояний между платформами.
Если f = 1, то на третьей строке находятся n целых чисел d1, d2, …, dn (1 ≤ di ≤ 109).
Если f = 2, то на третьей строке находится число m (2 ≤ m ≤ min(n, 105)) и три целых числа x, y и z (0 ≤ x, y, z ≤ 109). На четвертой строке находятся m целых чисел c1, c2, …, cm (1 ≤ ci ≤ 109). Значения di вычисляются по следующим формулам.
Если 1 ≤ i ≤ m, то di = ci.
Если m + 1 ≤ i ≤ n, то di = ((x ⋅ di − 2 + y ⋅ di − 1 + z) mod 109) + 1.
Здесь mod означает остаток от целочисленного деления, в языках C++
, Java
и Python
он обозначается символом «%
».
Требуется вывести два целых числа: минимальную допустимую начальную ловкость a и номер стартовой платформы, на которую можно разместить робота, чтобы успешно провести эксперимент.
Если возможных стартовых платформ для минимальной начальной ловкости несколько, можно вывести любую из них.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Доп. ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 15 | n ≤ 300, f = 1, di ≤ 300 | первая ошибка | |
2 | 17 | n ≤ 5000, f = 1 | 1 | первая ошибка |
3 | 10 | n ≤ 100 000, f = 1, гарантируется, что оптимально начать с первой платформы | первая ошибка | |
4 | 20 | n ≤ 100 000, f = 1 | 1 — 3 | первая ошибка |
5 | 5 | f = 2, гарантируется, что оптимально начать с первой платформы | 3 | первая ошибка |
6 | 33 | f = 2 | 1 — 5 | первая ошибка |
Во втором примере массив расстояний между платформами равен [1, 2, 3, 4, 5, 18, 45, 112, 273, 662]. Значения от d6 до d10 вычисляются по формулам:
d6 = ((1 ⋅ d4 + 2 ⋅ d5 + 3) mod 109) + 1 = ((1 ⋅ 4 + 2 ⋅ 5 + 3) mod 109) + 1 = 18
d7 = ((1 ⋅ d5 + 2 ⋅ d6 + 3) mod 109) + 1 = ((1 ⋅ 5 + 2 ⋅ 18 + 3) mod 109) + 1 = 45
d8 = ((1 ⋅ d6 + 2 ⋅ d7 + 3) mod 109) + 1 = ((1 ⋅ 18 + 2 ⋅ 45 + 3) mod 109) + 1 = 112
d9 = ((1 ⋅ d7 + 2 ⋅ d8 + 3) mod 109) + 1 = ((1 ⋅ 45 + 2 ⋅ 112 + 3) mod 109) + 1 = 273
d10 = ((1 ⋅ d8 + 2 ⋅ d9 + 3) mod 109) + 1 = ((1 ⋅ 112 + 2 ⋅ 273 + 3) mod 109) + 1 = 662
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Головоломка состоит из n треугольников. Чтобы решить головоломку, необходимо выбрать из них четыре треугольника и собрать из них большой треугольник по следующей схеме:
Треугольники не должны пересекаться, в объединении они должны давать треугольник. Ровно по одному из выбранных треугольников должны находиться в углах, а один треугольник должен располагаться в центре.
Треугольники лежат на столе, их можно свободно вращать и двигать, но нельзя зеркально отражать.
В первой строке дано одно целое число t — номер теста.
В второй строке дано одно целое число n — количество треугольников в головоломке (4 ≤ n ≤ 30).
В следующих n строках дано описание треугольников. Один треугольник описывается координатами трех своих углов, данных в порядке обхода треугольника против часовой стрелки. Все координаты по модулю не превышают 105. Гарантируется, что треугольники не являются вырожденными. В исходном расположении треугольники могут пересекаться.
В первой строке выведите одно целое число — количество наборов из четырех треугольников, из которых можно собрать большой треугольник по указанной схеме.
В следующих строках выведите наборы. Каждый набор задается номерами треугольников, которые в него входят. Треугольники внутри набора можно выводить в любом порядке. Наборы можно выводить в любом порядке.
В этой задаче потестовая оценка. Каждый тест оценивается независимо и стоит 5 баллов.
Тесты удовлетворяют следующим ограничениям:
Тест | Описание теста |
---|---|
1 | тест из примера, не оценивается |
2 | тест из примера, не оценивается |
3 | Все треугольники равны с точностью до поворота, n ≤ 30 |
4 | У каждого треугольника есть горизонтальная и вертикальная стороны, все треугольники равнобедренные, n ≤ 10 |
5 | У каждого треугольника есть горизонтальная и вертикальная стороны, все треугольники равнобедренные, n ≤ 30 |
6 | У каждого треугольника есть горизонтальная и вертикальная стороны, n ≤ 10 |
7 | У каждого треугольника есть горизонтальная и вертикальная стороны, n ≤ 30 |
8 | Все треугольники прямоугольные, n ≤ 10 |
9 | Все треугольники прямоугольные, n ≤ 30 |
10 | Для каждой четверки треугольников, из которой можно собрать треугольник, гарантируется, что треугольник можно собрать не вращая треугольники, n ≤ 10 |
11 | Для каждой четверки треугольников, из которой можно собрать треугольник, гарантируется, что треугольник можно собрать не вращая треугольники, n ≤ 20 |
12 | Для каждой четверки треугольников, из которой можно собрать треугольник, гарантируется, что треугольник можно собрать не вращая треугольники, n ≤ 30 |
13 | n = 10 |
14 | n = 10 |
15 | n = 10 |
16 | n = 20 |
17 | n = 20 |
18 | n = 20 |
19 | n = 30 |
20 | n = 30 |
21 | n = 30 |
22 | n = 30 |
В первом примере из данных четырех треугольников можно собрать один. При этом треугольники не требуется вращать.
Во втором примере все треугольники имеют одинаковую форму прямоугольного треугольника с длинами катетов равными 1. Из любых четырех треугольников можно собрать один.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 2 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Кай работает в лаборатории изучения массивов, он экспериментирует с двумя массивами натуральных чисел: A = [a1, a2, …, an] длины n и B = [b1, b2, …, bm] длины m.
Эксперимент, который проводит Кай, устроен следующим образом. У каждого из массивов отбрасывается произвольный, возможно пустой, префикс, а также произвольный, возможно пустой, суффикс, таким образом, чтобы оставшиеся части массивов имели равную длину. Обозначим получившиеся массивы как A′ и B′, а их длину как k. Затем Кай суммирует поэлементно получившиеся массивы, итоговый массив Кай обозначает как C = [c1, c2, …, ck].
Пусть, например, n = 5, A = [4, 3, 3, 2, 1], m = 6, B = [4, 1, 5, 1, 3, 2], от массива A отбрасывается первый и последний элемент, от массива B три первых. После этого массивы имеют вид A′ = [3, 3, 2], B′ = [1, 3, 2], результат их поэлементного суммирования C = [4, 6, 4].
Задача Кая заключается в том, чтобы получать такие C, которые являются массивами-палиндромами, то есть если числа на первой и последней позиции совпадают, числа на второй и предпоследней позиции совпадают, и так далее, для всех i числа на позициях i и k − i + 1 совпадают.
Помогите Каю понять, какой максимальный по длине массив-палиндром он может получить в результате эксперимента.
В первой строке ввода даны два целых числа n и m — количество элементов в первом и во втором массиве, соответственно (1 ⩽ n, m ⩽ 100 000).
Во второй строке ввода даны n целых чисел ai — массив A (1 ⩽ ai ⩽ 100).
В третьей строке ввода даны m целых чисел bj — массив B (1 ⩽ bj ⩽ 100).
Выведите единственное целое число — максимальное k, что Кай в результате эксперимента может получить массив-палиндром длины k.
1 ⩽ n, m ⩽ 100 000
1 ⩽ ai ⩽ 100
1 ⩽ bj ⩽ 100
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
1 | 13 | n, m ≤ 300 | первая ошибка | |
2 | 33 | все элементы массива B одинаковые | первая ошибка | |
3 | 16 | n ≤ 500, m ≤ 105 | 1 | первая ошибка |
4 | 38 | 1 — 3 | первая ошибка |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|