Недавно Миша и Филипп заполучили власть над температурой воздуха в своих любимых городах — Липецке и Москве. Сейчас температура воздуха в Липецке — $$$x$$$ градусов, а температура воздуха в Москве — $$$y$$$ градусов. Они планируют играть в свою любимую игру, которая называется «Уравняй».
Суть игры заключается в следующем. Сначала Миша уменьшает температуру в Липецке на $$$a$$$ и увеличивает температуру в Москве на $$$a$$$. Затем Филипп уменьшает температуру в Москве на $$$b$$$ и увеличивает температуру в Липецке на $$$b$$$. Если температура в двух городах стала равной, то друзья радуются и идут спать. В противном случае, Миша снова меняет температуру в обоих городах описанным способом, а затем Филипп меняет температуру в обоих городах описанным образом. Друзья будут выполнять данные действия до тех пор, пока температура воздуха в Липецке и Москве не станет одинаковой. Обратите внимание, что Миша и Филипп должны сделать одинаковое количество операций изменения температуры.
Так как они не хотят всю жизнь играть в данную игру, вам придется им подсказать, сравняется ли в какой-то момент температура воздуха в Липецке и Москве. При этом, если это произойдет, то вам нужно сказать, сколько пар изменений произойдет для достижения этого великого события.
Первая строка содержит одно целое число $$$x$$$ ($$$1 \le x \le 10^9$$$) — изначальная температура воздуха в Липецке.
Вторая строка содержит одно целое число $$$y$$$ ($$$1 \le y \le 10^9$$$) — изначальная температура воздуха в Москве.
Третья строка содержит одно целое число $$$a$$$ ($$$1 \le a \le 10^9$$$) — на сколько Миша увеличивает температуру воздуха в Москве (и, соответственно, на сколько уменьшает ее в Липецке).
Четвертая строка содержит одно целое число $$$b$$$ ($$$1 \le b \le 10^9$$$) — на сколько Филипп увеличивает температуру воздуха в Липецке (и, соответственно, на сколько уменьшает ее в Москве).
Если у Миши и Филиппа не получится уравнять температуру воздуха в городах, используя описанные изменения, в единственной строке выведите «No» (без кавычек).
Иначе в первой строке выведите «Yes» (без кавычек). Во второй строке выведите одно целое четное число — минимальное количество изменений, при помощи которого можно достичь равной температуры в городах.
Помимо примеров из условия данная задача содержит $$$25$$$ тестов, каждый из которых оценивается независимо в $$$4$$$ балла.
Решения, правильно работающие при $$$1 \le x, y, a, b \le 100\,000$$$, будут оцениваться не менее, чем $$$40$$$ баллами.
10 6 5 4
Yes 4
2 1 1 2
No
Рассмотрим первый пример. Изначальная температура в Липецке и Москве равна $$$10$$$ и $$$6$$$ градусов, соответственно. За одну операцию друзья могут изменить температуры на $$$5$$$ и $$$4$$$ градуса, соответственно. Рассмотрим процесс изменений:
| Номер операции | $$$x$$$ | $$$y$$$ |
| $$$0$$$ | $$$10$$$ | $$$6$$$ |
| $$$1$$$ | $$$5$$$ | $$$11$$$ |
| $$$2$$$ | $$$9$$$ | $$$7$$$ |
| $$$3$$$ | $$$4$$$ | $$$12$$$ |
| $$$4$$$ | $$$8$$$ | $$$8$$$ |
Таким образом, через четыре операции в городах будет одинаковая температура.
Во втором примере можно заметить, что каждые две операции в Липецке температура будет увеличиваться на $$$1$$$ градус, а в Москве — уменьшаться на столько же. Поэтому добиться одинаковой температуры никогда не получится.
Недавно Даниил участвовал в командной олимпиаде. В почетном дипломе третьей степени он обнаружил массив $$$a$$$, состоящий из $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$, а также число $$$k$$$.
После этого он решил поиграть с обнаруженным массивом. Для этого мальчик $$$q$$$ раз изменяет некоторый элемент массива. Каждое изменение характеризуется двумя числами $$$x$$$ и $$$y$$$, которые означают, что Даниил заменяет элемент массива на позиции $$$x$$$ (который раньше был равен $$$a_x$$$) на число $$$y$$$.
После каждого изменения Даниил хочет посчитать количество таких пар $$$(l, r)$$$, что $$$1 \le l \lt r \le n$$$ и сумма $$$(a_l + a_r)$$$ делится на $$$k$$$ без остатка. Сейчас мальчик празднует по поводу получения диплома, поэтому не способен решить эту задачу сам.
Первая строка содержит три целых числа $$$n$$$, $$$q$$$ и $$$k$$$ ($$$1 \le n, q \le 100\,000$$$, $$$1 \le k \le 10^9$$$) — размер массива, количество изменений, а также число $$$k$$$ из условия задачи.
Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — элементы массива $$$a$$$.
Каждая из следующих $$$q$$$ строк содержит два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$1 \le x_i \le n$$$, $$$1 \le y_i \le 10^9$$$) — описание очередного изменения, произведенного Даниилом. После этого изменения число, находящееся на позиции $$$x_i$$$ в массиве заменяется на число $$$y_i$$$.
Выведите $$$q$$$ строк. В $$$i$$$-й строке выведите одно целое число — количество пар чисел $$$(l, r)$$$, таких что $$$1 \le l \lt r \le n$$$ и $$$(a_l + a_r)$$$ делится на $$$k$$$ без остатка, после применения первых $$$i$$$ операций.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
| 0 | 0 | Тесты из условия | — | полная |
| 1 | 10 | $$$n \le 100$$$, $$$q \le 100$$$ | — | первая ошибка |
| 2 | 20 | $$$n \le 5\,000$$$, $$$q \le 5\,000$$$ | 1 | первая ошибка |
| 3 | 20 | $$$q \le 1\,000$$$, $$$k \le 1\,000$$$ | — | первая ошибка |
| 4 | 12 | $$$k \le 100\,000$$$ | 3 | первая ошибка |
| 5 | 38 | Нет дополнительных ограничений | 1 — 4 | первая ошибка |
5 3 3 1 2 3 4 5 1 3 3 1 2 5
3 4 4
В изначальном массиве из примера подходящими парами $$$(l, r)$$$ являются $$$(1, 2)$$$: $$$1 + 2 = 3$$$, $$$(1, 5)$$$: $$$1 + 5 = 6$$$, $$$(2, 4)$$$: $$$2 + 4 = 6$$$ и $$$(4, 5)$$$: $$$4 + 5 = 9$$$
После первого изменения массив выглядит следующим образом: $$$3, 2, 3, 4, 5$$$. Подходящими парами в нём являются $$$(1, 3)$$$: $$$3 + 3 = 6$$$, $$$(2, 4)$$$: $$$2 + 4 = 6$$$ и $$$(4, 5)$$$: $$$4 + 5 = 9$$$
После второго изменения массив выглядит следующим образом: $$$3, 2, 1, 4, 5$$$. Подходящими парами в нём являются $$$(2, 3)$$$: $$$2 + 1 = 3$$$, $$$(2, 4)$$$: $$$2 + 4 = 6$$$, $$$(3, 5)$$$: $$$1 + 5 = 6$$$ и $$$(4, 5)$$$: $$$4 + 5 = 9$$$.
После третьего изменения массив выглядит следующим образом: $$$3, 5, 1, 4, 5$$$. Набор подходящих пар не изменится.
Зачем горилла Коко прыгала по лианам? Оказывается, что у нее была вполне конкретная цель: Коко спешила на обед.
Обед гориллы организован следующим образом. В начале ей выдают поднос, на котором разложены $$$n$$$ фруктов, пронумерованных числами от $$$1$$$ до $$$n$$$. Если горилла съест $$$i$$$-й фрукт, она получит $$$a_i$$$ единиц удовольствия от еды. Коко может сама выбирать, какие фрукты съесть, а какие проигнорировать. После того, как горилла съела все фрукты, которые захотела, поднос уносят, а вместо него приносят точно такой же поднос, на котором снова разложены $$$n$$$ фруктов. Затем Коко снова съедает те фрукты, которые захочет, после чего поднос уносят, и процесс продолжается аналогично.
Однако, все не так просто: горилла Коко очень любит разнообразие. Поэтому если в какой-то момент она съест $$$i$$$-й фрукт, принесенный ей на подносе, то в следующий раз, когда горилла захочет снова съесть $$$i$$$-й фрукт, он принесет ей на $$$b_i$$$ единиц удовольствия меньше, чем в предыдущий раз. Иными словами, когда горилла впервые съедает $$$i$$$-й фрукт, она получает $$$a_i$$$ единиц удовольствия. Когда Коко съедает $$$i$$$-й фрукт во второй раз, она получает $$$a_i - b_i$$$ единиц удовольствия. Когда она захочет съесть $$$i$$$-й фрукт в третий раз, то количество единиц полученного удовольствия будет равняться $$$a_i - 2 \cdot b_i$$$, и так далее. Обратите внимание, что некоторые съеденные фрукты могут приносить горилле отрицательное количество единиц удовольствия, однако есть такие фрукты тоже можно.
Горилла Коко знает, что за сегодняшний день поднос с едой будет принесен ровно $$$k$$$ раз. Также она решила, что хочет съесть ровно $$$t$$$ фруктов за весь день (имеется ввиду именно суммарное количество фруктов с учетом того, что некоторые фрукты Коко может съесть несколько раз). Разумеется, Коко хочет, чтобы суммарное количество единиц удовольствия, полученных ей от всех съеденных фруктов, было как можно больше.
Коко является очень умной гориллой, однако математика дается ей тяжело. Помогите горилле вычислить максимально возможное суммарное количество единиц удовольствия, которые она сможет получить.
Первая строка содержит три целых числа $$$n$$$, $$$k$$$ и $$$t$$$ ($$$1 \le n, k \le 200\,000$$$, $$$1 \le t \le \min(200\,000, n \cdot k)$$$) — количество фруктов на подносе, количество раз, когда поднос будет принесен горилле, а также количество фруктов, которое хочет съесть горилла Коко за весь день, соответственно.
Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$-10^9 \le a_i \le 10^9$$$) — количество единиц удовольствия, которые получит горилла, съев $$$i$$$-й фрукт впервые за день.
Третья строка содержит $$$n$$$ целых чисел $$$b_1, b_2, \ldots, b_n$$$ ($$$0 \le b_i \le 10^9$$$) — величины, на которые уменьшается количество единиц удовольствия при каждом следующем употреблении в пищу $$$i$$$-го фрукта.
Выведите одно целое число — максимальное суммарное количество единиц удовольствия, которое может получить горилла Коко, съев ровно $$$t$$$ фруктов за день.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
| 0 | 0 | Тесты из условия | — | полная |
| 1 | 17 | $$$n \cdot k \le 20$$$ | — | первая ошибка |
| 2 | 14 | $$$b_i = 0$$$ для всех $$$i$$$ | — | первая ошибка |
| 3 | 15 | Все $$$b_i$$$ попарно равны | 2 | первая ошибка |
| 4 | 12 | $$$k=t$$$ | — | первая ошибка |
| 5 | 18 | $$$n \le 1\,000$$$, $$$k \le 1\,000$$$, $$$t \le 1\,000$$$ | 1 | первая ошибка |
| 6 | 24 | Нет дополнительных ограничений | 1 — 5 | первая ошибка |
4 3 12 5 10 -2 6 0 3 1 1
42
3 10 1 -3 -5 -2 1 2 3
-2
4 3 3 10 2 3 2 6 1 2 0
17
Рассмотрим первый пример. На подносе находятся четыре фрукта, поднос принесут три раза за день. Так как горилла Коко хочет съесть $$$12$$$ фруктов за день, то ей придется каждый раз есть все фрукты, которые ей принесут. В первый раз, съев все четыре фрукта, она получит $$$5 + 10 + (-2) + 6 = 19$$$ единиц удовольствия. Во второй раз, съев все фрукты, она получит $$$(5 - 0) + (10 - 3) + (-2 - 1) + (6 - 1) = 14$$$ единиц удовольствия. В третий раз горилла получит $$$(5 - 0) + (10 - 6) + (-2 - 2) + (6 - 2) = 9$$$ единиц удовольствия. Суммарно за весь день Коко получит $$$19 + 14 + 9 = 42$$$ единицы удовольствия.
Во втором примере легко показать, что оптимальное поведение Коко — съесть фрукт с номером $$$3$$$ и получить $$$-2$$$ единицы удовольствия.
Вася готовится к заключительному этапу ВсОШ по информатике. По его плану за $$$n$$$ оставшихся дней до олимпиады он должен решить хотя бы $$$x$$$ задач.
Вы являетесь лучшим другом Васи, а по совместительству и его тренером, а значит, кому как не вам известно, что Вася очень умный, но ленивый. Вася может решить за один день не более, чем $$$c$$$ задач, однако он часто отвлекается, и без должной мотивации в каждый следующий день решает на одну задачу меньше, чем в предыдущий. Разумеется, количество решенных задач не может стать отрицательным, поэтому если в какой-то из дней Вася не решил ни одной задачи, то в следующий день он также не решит ни одной задачи. Вам известно, что в первый день тренировок мотивация Васи будет велика, и он решит $$$c$$$ задач.
Чтобы поднять мотивацию Васи, вы можете решать контесты вместе с ним: если в какой-то из дней вы решаете контест вместе, то спортивный азарт заставляет Васю решить ровно $$$c$$$ задач. Вы очень сильно хотите помочь ему выполнить план и получить заветный диплом, поэтому готовы ради него писать контесты каждый день.
Для лучшего понимания рассмотрим следующий пример. Пусть до олимпиады осталось пять дней, и Вася планирует решить хотя бы $$$15$$$ задач, решая каждый день не более, чем четыре задачи. Тогда один из вариантов тренировок выглядит следующим образом. В первый день Вася решит четыре задачи, во второй день — на одну задачу меньше, то есть три задачи. В третий день Вася решит две задачи. В четвертый день вы будете решать контест вместе с Васей, поэтому он решит четыре задачи. В пятый день Вася решит три задачи. Таким образом, суммарно за пять дней Вася решит $$$4 + 3 + 2 + 4 + 3 = 16$$$ задач.
Олимпиада уже близко, но вам не сильно нравится соревноваться с Васей, поэтому вы хотите понять, в какое минимальное количество дней вам придется писать контест вместе, чтобы Вася выполнил свой план.
Единственная строка содержит три целых числа $$$n$$$, $$$x$$$, $$$c$$$ ($$$1 \le n \le 10^9$$$, $$$1 \le x \le 10^{15}$$$, $$$1 \le c \le 10^9$$$) — количество дней до олимпиады, минимальное количество задач, которое хочет решить Вася, а также максимальное количество задач, которое он может решить за один день, соответственно.
Выведите одно целое число — минимальное количество дней, в которые вам придется писать контест вместе, чтобы Вася выполнил свой план.
Если выполнить план Васи невозможно вне зависимости от ваших действий, выведите число $$$-1$$$.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
| 0 | 0 | Тесты из условия | — | полная |
| 1 | 13 | $$$n \le 20$$$ | — | первая ошибка |
| 2 | 18 | — | первая ошибка | |
| 3 | 16 | $$$n \le 10\,000$$$ | 1 | первая ошибка |
| 4 | 12 | $$$n \le 10^6$$$ | 1, 3 | первая ошибка |
| 5 | 14 | $$$n \le 5 \cdot 10^7$$$ | 1, 3, 4 | первая ошибка |
| 6 | 27 | Нет дополнительных ограничений | 1 — 5 | первая ошибка |
5 15 4
1
1 10 1
-1
10 5 1
4
Первый пример был рассмотрен выше в условии задачи.
Во втором примере до олимпиады остался один день, Вася хочет успеть решить хотя бы $$$10$$$ задач, решая при этом не более, чем одну задачу за день. Легко показать, что данный план невозможно выполнить.
Как известно, Кирилл — восходящий спортсмен. Он соблюдает диету, никогда не пропускает тренировки, а также ежедневно бегает по утрам на стадионе около своего дома.
Стадион, на котором бегает Кирилл, имеет форму окружности, вдоль которой равномерно рассажены $$$n$$$ деревьев, пронумерованных целыми числами от $$$1$$$ до $$$n$$$ вдоль стадиона. Каждое дерево характеризуется своим типом. Для удобства пронумеруем типы деревьев целыми числами от $$$1$$$ до $$$m$$$.
Тренер Кирилла очень суров: он требует от своих учеников фото-отчет о каждой тренировке, поэтому пробежка Кирилла проходит в следующем формате. Кирилл становится напротив первого дерева и начинает пробежку, попутно фотографируя все деревья, мимо которых он пробежал. К сожалению, памяти на телефоне Кирилла хватает лишь на $$$k$$$ фотографий. Поэтому пробежав в очередной раз мимо $$$k$$$ деревьев, мальчик вынужден остановиться, отправить некоторые из сделанных фотографий тренеру, очистить память на телефоне и продолжить пробежку. Кирилл понимает, что тренеру будет неинтересно смотреть на деревья одного и того же типа. Поэтому, если во время очередного забега Кирилл сделал несколько фотографий деревьев одного и того же типа, он отправит только одну из этих фотографий. Затем мальчик очистит память на телефоне и продолжит пробежку, начиная со следующего дерева. Так будет продолжаться, пока Кирилл не остановится, в очередной раз сделав $$$k$$$ фотографий, и не обнаружит, что следующее дерево — в точности то, с которого он начинал пробежку. После этого Кирилл отправит тренеру очередную порцию фотографий и пойдет домой.
Для лучшего понимания процесса рассмотрим следующий пример: пусть вдоль стадиона посажены шесть деревьев следующих типов: $$$1, 3, 2, 3, 2, 2$$$, а $$$k = 4$$$. Кирилл начинает пробежку и фотографирует первые $$$k$$$ деревьев, которые имеют типы $$$1$$$, $$$3$$$, $$$2$$$ и $$$3$$$. После этого Кирилл останавливается и отправляет тренеру одну фотографию дерева типа $$$1$$$, одну фотографию дерева типа $$$2$$$, и одну фотографию дерева типа $$$3$$$. После чего он очищает память телефона, становится напротив дерева с номером $$$5$$$ и продолжает пробежку. Далее Кирилл сфотографирует деревья типов $$$2$$$, $$$2$$$, $$$1$$$ и $$$3$$$, отправит тренеру по одной фотографии каждого из деревьев первого, второго, и третьего типов. Далее Кирилл пробежит вдоль деревьев с типами $$$2$$$, $$$3$$$, $$$2$$$ и $$$2$$$, и отправит тренеру одно фото дерева типа $$$2$$$ и одно фото дерева типа $$$3$$$. После этого Кирилл поймет, что следующее дерево имеет номер $$$1$$$, и пойдет домой.
Таким образом, Кирилл отправит тренеру две фотографии деревьев первого типа, три фотографии деревьев второго типа и три фотографии деревьев третьего типа.
Однажды Кириллу стало интересно, на скольких фотографиях тренер увидит дерево каждого из $$$m$$$ типов. Помогите Кириллу ответить на этот вопрос. Вычислите для каждого типа дерева $$$i$$$ количество фотографий, на которых будет представлено дерево этого типа.
Первая строка содержит три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$1 \le n \le 200\,000$$$, $$$1 \le m \le n$$$, $$$1 \le k \le n$$$) — количество деревьев, которые растут вдоль стадиона, количество различных типов деревьев, а также максимальное количество фотографий, на которое хватает памяти телефона Кирилла.
Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le m$$$) — типы деревьев.
Выведите $$$m$$$ целых чисел: $$$i$$$-е число должно быть равно количеству отправленных фотографий, на которых представлено дерево $$$i$$$-го типа.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
| 0 | 0 | Тесты из условия | — | полная |
| 1 | 10 | $$$n \le 400$$$ | — | первая ошибка |
| 2 | 20 | $$$n \le 2\,000$$$ | 1 | первая ошибка |
| 3 | 20 | $$$m \le 10$$$ | — | первая ошибка |
| 4 | 10 | $$$k \le 10$$$ | — | первая ошибка |
| 5 | 40 | Нет дополнительных ограничений | 1 — 4 | первая ошибка |
4 2 2 2 1 2 2
1 2
5 3 4 2 1 3 2 1
5 5 4
7 3 5 2 1 2 3 1 3 3
7 7 7
Рассмотрим первый пример. Во время первого забега Кирилл сделает фото деревьев с номерами $$$1$$$ и $$$2$$$, а во время второго — с номерами $$$3$$$ и $$$4$$$. После этого пробежка завершится. Фотографии деревьев второго типа Кирилл отправит два раза, а фотографию единственного дерева первого типа — только после первого забега.
Рассмотрим второй пример. Во время первого забега Кирилл сфотографирует деревья с номерами $$$1$$$, $$$2$$$, $$$3$$$ и $$$4$$$. Во время второго в телефон Кирилла попадут деревья номерами $$$5$$$, $$$1$$$, $$$2$$$ и $$$3$$$. Во время третьего — деревья с номерами $$$4$$$, $$$5$$$, $$$1$$$ и $$$2$$$. Во время четвертого — деревья с номерами $$$3$$$, $$$4$$$, $$$5$$$ и $$$1$$$. Наконец, во время пятого забега Кирилл сфотографирует деревья с номерами $$$2$$$, $$$3$$$, $$$4$$$ и $$$5$$$. Среди любых четырех посаженных подряд деревьев есть хотя бы одно дерево первого или второго типа, поэтому они будут отправлены тренеру после каждого забега. Дерево третьего типа будет отправлено после всех забегов, кроме третьего.