В лаборатории аномальных материалов антинаучно-исследовательского комплекса «Black Mesa» проводят эксперименты с недавно разработанным графитовым наностержнем. Графитовый наностержень представляет собой \(n\) последовательно соединенных атомов углерода, находящихся на одной прямой. Каждый атом имеет определенный заряд.
Для проведения эксперимента, стержень располагают вертикально. Пронумеруем атомы от 1 до n снизу вверх. Между двумя атомами образуется сильная связь, если это соседние атомы и верхний из них имеет заряд ровно на один больше, чем нижний. Иными словами, атомы a и b соединены сильной связью, если \(a \ = \ b \ + \ 1\) и \(q_a \ = \ q_b \ + \ \)1, где \(q_i\) — заряд \(i\)-го атома. Цепочкой атомов назовем несколько последовательных атомов, соединенных сильными связями.
Вчера был проведен очередной эксперимент. Перед началом эксперимента каждому атому установили определенный заряд: \(i\)-му атому установили заряд \(q_i\).
Во время эксперимента ученые проводили действия двух типов:
В первой строке находится одно целое число \(n\) (\(1 \le n \le 100 000\)) — количество атомов в наностержне. Во второй строке находятся \(n\) чисел \(q_i\) (\(|q_i | \le 10^9\)) — начальный заряд \(i\)-го атома. В третьей строке находится одно целое число \(m\) (\(0 \le m \le 100 000\)) — количество действий в эксперименте. В следующих \(m\) строках содержится описание эксперимента.
Если строка начинается с символа «+», очередное действие — изменение заряда атомов. В таком случае, далее в этой строке находятся три целых числа: \(l_i, \ r_i \ и \ d_i (1 \le l_i \le r_i \le n, \ |d_i | \le 10^9\) ), которые характеризуют это действие.
Если строка начинается с символа «?», очередное действие — второго типа. В таком случае, далее в этой строке находятся два целых числа: \(l_i\) и \(r_i\) (\(1 \le l_i \le r_i \le n\)), которые характеризуют это действие.
Для каждого действия второго типа выведите в новой строке одно число — длину наибольшей цепочки.
Иллюстрация к примеру. Пунктиром выделены сильные связи, которые разрушаются на время действия второго типа. Для каждого действия второго типа выделены отрезок запроса и самая длинная цепочка.
6 2 3 4 3 4 4 5 ? 1 6 + 6 6 1 ? 2 6 + 4 6 2 ? 1 5
3 3 5
Ваня сомневается, хочет ли он праздновать свой день рождения. Он решил сообщить друзьям частичную информацию о дате своего рождения, и если они вычислят точную дату, то так тому и быть — праздник состоится.
Подруге Ане он личным сообщением в социальной сети сообщил число внутри месяца, а другу Боре — месяц своего рождения. Затем он опубликовал на своей странице список дней года, один из которых — день его рождения, а также фразу о том, что Аня знает число, но не знает месяц, а Боря — знает месяц, но не число.
Затем в комментариях состоялся следующий диалог:
Аня: Я не знаю точную дату рождения Вани, но я уверена, что и Боря её тоже не знает.
Боря: Я сначала не знал дату Ваниного рождения, но теперь, после твоего комментария, знаю точно!
Аня: Ого! Теперь и я тоже знаю точную дату!
Когда же у Вани день рождения?
В первой строке содержится целое число \(n\) (\(1 \le n \le 366\)) — количество возможных дат, опубликованных Ваней на своей странице.
В каждой из следующих \(n\) строк содержится описание одной даты: число и номер месяца. Месяцы пронумерованы от 1 до 12.
Даты приведены в хронологическом порядке внутри года.
Гарантируется, что ситуация корректна, и существует единственная возможная дата рождения Вани, которая приводит к описанному диалогу.
Выведите дату рождения Вани в таком же формате: сначала число, а затем месяц.
Напомним число дней в каждом месяце. Поскольку Ваня мог родиться и в високосном году, будем считать, что в феврале 29 дней.
11 29 2 5 5 16 5 31 5 17 6 18 6 14 7 16 7 5 12 14 12 17 12
17 6
В кинотеатре «Дружба» через неделю пройдет премьера мирового хита «Осторожный Макс», и шушпанчики обязательно хотят попасть на первый сеанс. Зал в кинотеатре состоит из \(n\) рядов по \(n\) мест в каждом. Ряды пронумерованы от \(1\) до \(n\), места в каждом ряду также пронумерованы от \(1\) до \(n\). Обозначим место с номером \(c\) в ряду \(r\) как \((r, \ c)\).
Шушпанчики точно знают, что лучшее место в зале — место \((r_b, \ c_b)\). Для любого места \((r, \ c)\)
можно посчитать неудачность этого места как
\(|r \ − \ r_b| \ + \ |c \ − \ c_b|\), и чем неудачность меньше, тем
лучше.
Шушпанчики пойдут на сеанс группой из \(k\) шушпанчиков. Они хотят сидеть рядом друг с другом, поэтому договорились купить \(k\) мест подряд в одном ряду. Таким образом, шушпанчики купят билеты на места \((r_a, \ c_a), \ (r_a, c_a \ + \ 1) \ , \dots, \ (r_a, \ c_a \ + \ k \ − \ 1)\) для некоторых \(r_a\) и \(c_a\).
К сожалению, некоторые места уже забронированы, и их выкупить не получится. Помогите шушпанчикам выбрать \(k\) соседних мест на одном ряду так, чтобы суммарная неудачность выбранных ими мест была минимальна.
В первой строке заданы три числа \(n\), \(m\) и \(k\) (\(1 \le n \le 10^9, 0 \le m \le min(n^2, 10^5), 1 \le k \le n\)) — размер зала, число проданных мест и число шушпанчиков.
В следующих \(m\) строках описаны занятые места. Каждое место описывается двумя числами: \(r_i, \ c_i \ (1 \le r_i, \ c_i \le n\), все описанные места различны).
В следующей строке даны два числа \(r_b, \ c_b \ (1 \le r_b, c_b \le n\)) — оптимальное место, как можно ближе к которому хотят оказаться шушпанчики.
Если все шушпанчики не смогут купить билеты на \(k\) мест подряд в одном ряду, выведите −1. Иначе, выведите минимальную суммарную неудачность, которую можно получить.
3 1 2 1 2 1 1
3
3 3 2 1 2 2 2 3 2 2 2
-1
Завершилась Командная Интернет-олимпиада Новой Зеландии по Алгоритмам (КИНЗА). После олимпиады оргкомитет принял решение отправить футболки всем призерам олимпиады. Доставка футболок была поручена компании, в которой работает курьер Билл.
Биллу требуется доставить \(n\) футболок. Он должен доставлять посылки в том порядке, в котором они значатся в его обходном листе. При этом, если посылку доставить не удалось, то в обходном листе ставится отказ, и Билл едет по следующему адресу.
Билл начинает свой рабочий день в офисе компании в момент 0. Приезжая к адресату посылки, он ждет не более \(k\) минут, и если за это время адресат открывает дверь, то Билл отдает ему посылку, процесс передачи посылки без учета времени ожидания занимает \(t\) минут. Если же в течение \(k\) минут дверь не открывается и получатель не появляется, то Билл едет дальше. При этом, если получатель появился ровно ровно через \(k\) минут после приезда Билла, то Билл успевает это заметить, и посылка оказывается доставлена. Рабочий день Билла заканчивается, когда он заканчивает передавать последнюю посылку, либо отмечает в обходном листе отказ от ее получения.
Начальник Билла Джон хочет проверить, насколько добросовестно тот работает. Джону известно, сколько времени ему потребуется на то, чтобы доехать от офиса до первого адресата, а также время на переезд от очередного адресата до следующего. Кроме того, он провел телефонный опрос и знает время, начиная с которого каждый из получателей футболок будет дома. Теперь Джон хочет узнать, в какой момент Билл закончит свой рабочий день.
В первой строке входного файла находятся три целых числа \(n, \ k, \ t \ (1 \le n \le 50 000, 1 \le k, \ t \le 10^4\)).
Во второй строке находятся \(n\) натуральных чисел \(z_0, \ z_1, \dots, z_{n−1}\), где \(z_0\) — это время, которое требуется Биллу, чтобы доехать от офиса до первого адресата, а \(z_i\) — это время, которое требуется Биллу для преодоления пути от \(i\)-го до \(i \ + \ 1\)-го адресата. Все \(z_i\) не превосходят \(10^4\).
В третьей строке находятся \(n\) неотрицательных целых чисел \(s_1, \ s_2, \dots, s_n \ (0 \le s_i \le 10^9\) ), где \(s_i\) — это момент, начиная с которого \(i\)-й адресат готов принять посылку. Билл начинает свой путь в момент времени 0.
Выведите одно число — минимальное время, за которое Билл сможет выполнить свое задание.
В примере Билл приезжает к первому адресату в момент времени 1 и сразу же передает ему посылку. В момент времени 2 он выезжает от первого адресата и в момент времени 7 приезжает ко второму. Он ждет его 3 минуты, до момента времени 10, но тот не появляется, поэтому Билл отправляется к третьему адресату и приезжает к нему в момент 14. Тот дома и принимает посылку. Таким образом, Билл освобождается в момент времени 15.
3 3 1 1 5 4 1 11 7
15
Сегодня Леша проходил в школе деление столбиком. На дом ему задали вычислить частное двух больших чисел: \(n\) и \(m\). Леша уже попробовал решить пример, но, неожиданно для себя, понял, что \(n\) на \(m\) не делится. Он уверен, что учитель задавал пример, в котором результат не имеет остатка, поэтому он предположил, что допустил ошибку при переписывании примера с доски.
Теперь он хочет исправить несколько цифр в числе \(n\), чтобы оно стало делиться на \(m\). При этом, Леша хочет, чтобы новое число отличалось от записанного у него в минимальном количестве позиций.
Числа, записанные Лешей, не имеют ведущих нулей, он уверен, что числа, записанные на доске, также не имели ведущих нулей, поэтому и в новом числе их не должно быть. Само число 0 при этом является допустимым.
Помогите Леше.
В единственной строке входного файла находятся два целых числа \(n, \ m \ (0 \le n \le 10^{11}, \ 1 \le m \le 10^{11}\)).
В единственной строке выходного файла выведите одно целое число — результат изменения минимального числа цифр в числе \(n\), чтобы полученное число не имело ведущих нулей и делилось на \(m\).
Если ответов несколько, можете вывести любой. Если ответа не существует, выведите −1.
123 10
120
123 141
423
9 123
0
12 123
-1