Задача 1. Чемпионат по устному счету

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:100  

Условие

Председатель жюри чемпионата по устному счету !A !B !C придумал новое задание для участников чемпионата. Исходно на доске выписывается n целых чисел: a1, a2, …, an. После этого участник должен выполнять команды двух типов:

  1. Стереть i-е число с доски и записать вместо него число x. То есть, если на доске были записаны числа a1, a2, …, an,~ то после выполнения команды числа будут равны: a1, …, ai − 1, x, ai + 1, …, an.

  2. Циклически сдвинуть последовательность чисел на 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 строк записана очередная команда в следующем формате:

Формат выходных данных

В качестве ответа выведите 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 первая ошибка

Замечание

Рассмотрим пример из условия. Изначально последовательность записанных на доске чисел равна: 412153.

После первой команды последовательность циклически сдвигается на 3 элемента вправо. Новая последовательность: 153412. Сумма чисел равна: 1 + 5 + 3 + 4 + 1 + 2 = 16.

После второй команды необходимо заменить третий элемент последовательности на число 10. Новая последовательность: 1510412. Сумма чисел равна: 1 + 5 + 10 + 4 + 1 + 2 = 23.

После третьей команды заменить четвертый элемент на число 4. Так как четвертый элемент уже равен 4, последовательность не изменяется. Сумма чисел также равна 23.

После четвертой команды последовательность циклически сдвигается на 1: 2151041. Сумма чисел не изменилась.

Наконец, после пятой команды последовательность становится равна:  − 10151041. Сумма чисел в итоговой последовательности равна  − 10 + 1 + 5 + 10 + 4 + 1 = 11.

Примеры тестов

Стандартный вход Стандартный выход
1
6
4 1 2 1 5 3
5
2 3
1 3 10
1 4 4
2 1
1 1 -10
16
23
23
23
11
2
3
1000000000 1000000000 1000000000
3
1 2 999999999
2 2
1 2 999999999
2999999999
2999999999
2999999998

Задача 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 и номер стартовой платформы, на которую можно разместить робота, чтобы успешно провести эксперимент.

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

Ограничения

Система оценки

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

Подзадача Баллы Доп. ограничения Необходимые подзадачи Информация о проверке
115n ≤ 300, f = 1, di ≤ 300первая ошибка
217n ≤ 5000, f = 11первая ошибка
310 n ≤ 100 000, f = 1, гарантируется, что оптимально начать с первой платформыпервая ошибка
420n ≤ 100 000, f = 11 — 3первая ошибка
55f = 2, гарантируется, что оптимально начать с первой платформы3первая ошибка
633f = 21 — 5первая ошибка

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

Во втором примере массив расстояний между платформами равен [1, 2, 3, 4, 5, 18, 45, 112, 273, 662]. Значения от d6 до d10 вычисляются по формулам:

d6 = ((1⋅ d4 + 2⋅ d5 + 3mod 109) + 1 = ((1⋅ 4 + 2⋅ 5 + 3)mod 109) + 1 = 18

d7 = ((1⋅ d5 + 2⋅ d6 + 3mod 109) + 1 = ((1⋅ 5 + 2⋅ 18 + 3)mod 109) + 1 = 45

d8 = ((1⋅ d6 + 2⋅ d7 + 3mod 109) + 1 = ((1⋅ 18 + 2⋅ 45 + 3)mod 109) + 1 = 112

d9 = ((1⋅ d7 + 2⋅ d8 + 3mod 109) + 1 = ((1⋅ 45 + 2⋅ 112 + 3)mod 109) + 1 = 273

d10 = ((1⋅ d8 + 2⋅ d9 + 3mod 109) + 1 = ((1⋅ 112 + 2⋅ 273 + 3)mod 109) + 1 = 662

Примеры тестов

Стандартный вход Стандартный выход
1
5
1
3 7 4 2 5
4 3
2
10
2
5 1 2 3
1 2 3 4 5
653 1

Задача 3. Треугольная головоломка

Входной файл:Стандартный вход   Ограничение времени: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
13n = 10
14n = 10
15n = 10
16n = 20
17n = 20
18n = 20
19n = 30
20n = 30
21n = 30
22n = 30

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

В первом примере из данных четырех треугольников можно собрать один. При этом треугольники не требуется вращать.

Во втором примере все треугольники имеют одинаковую форму прямоугольного треугольника с длинами катетов равными 1. Из любых четырех треугольников можно собрать один.

Примеры тестов

Стандартный вход Стандартный выход
1
1
4
0 0 6 2 1 2
0 0 5 0 6 3
0 0 3 1 1 3
0 0 6 3 3 6
1
1 2 3 4 
2
2
6
0 0 1 0 1 1
0 1 0 0 1 0
-1 0 0 0 0 1
1 1 0 1 1 0
-1 0 0 -1 0 0
0 0 1 1 0 1
15
1 2 3 4 
1 2 3 5 
1 2 3 6 
1 2 4 5 
1 2 4 6 
1 2 5 6 
1 3 4 5 
1 3 4 6 
1 3 5 6 
1 4 5 6 
2 3 4 5 
2 3 4 6 
2 3 5 6 
2 4 5 6 
3 4 5 6 

Задача 4. Массивы-палиндромы

Входной файл:Стандартный вход   Ограничение времени: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
5 6
4 3 3 2 1
4 1 5 1 3 2
3

0.263s 0.013s 21