В кинотеатре «Дружба» через неделю пройдет премьера мирового хита «Осторожный Макс», и шушпанчики обязательно хотят попасть на первый сеанс. Зал в кинотеатре состоит из \(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
Вася очень силен в подсчёте ворон за окном на уроках математики. Сегодня выдался необычный день, ведь ворон было очень много. К тому же, их было целых два вида: белые и чёрные. К середине урока Вася закончил подсчёт — за окном оказалось \(a\) белых и \(b\) чёрных ворон.
Поскольку до конца урока было невыносимо много времени, Вася решил послушать, что говорит учитель. Как раз в этот момент учитель рассказывал, что такое наибольший общий делитель двух чисел. Вася очень талантливый мальчик и сразу понял, что к чему. Он моментально посчитал наибольший общий делитель чисел \(a\) и \(b\).
После этого он придумал новый термин — милый общий делитель. Милым общим делителем чисел \(x\) и \(y\) Вася решил назвать такое положительное целое число \(d\), что \(x\) делится на \(d\), \(y\) делится на \(d\), а сумма цифр числа \(d\) максимальна.
Помогите Васе найти милый общий делитель чисел \(a\) и \(b\).
В единственной строке входного файла находятся два целых числа \(a\), \(b\) (\(1 \le a, \ b \le 10^9\) ).
В единственной строке выходного файла выведите милый общий делитель чисел \(a\) и \(b\). Если ответов несколько, можете вывести любой.
220 440
55
Компания «Филипп индастриз» отправила на Марс новый робот-марсоход. Целью робота является исследование поверхности Марса.
Для исследования Марса робот будет перемещаться по поверхности планеты на север и на юг вдоль прямой. Программа робота состоит из \(n\) команд, каждая из которых описывается целым числом \(a_i\) . Каждое число \(a_i\) задаёт количество шагов, которое необходимо сделать роботу. Если \(a_i \ > \ 0\), то робот совершает \(|a_i |\) шагов на север, если \(a_i \ < \ 0\), то \(|a_i |\) шагов на юг. Робот исполняет команды последовательно, начиная с первой.
Однако по пути на Марс робот подвергся космическому излучению и его программа могла повредиться. Запустив процедуру тестирования памяти, ученые выяснили, что в программу было внесено от \(0\) до \(k\) ошибок следующего вида: число \(a_i\) оказалось заменено на \(−a_i\) . Тем не менее, приземлившись на Марс, робот выполнил свою, возможно поврежденную, программу.
Теперь для организации спасения робота ученые хотят выяснить, насколько далеко от точки, в которой он начал выполнение программы, робот мог оказаться в результате. Помогите им это выяснить.
В первой строке входного файла находятся два числа \(n, \ k \ (1 \le k \le n \le 10^5\) ) — количество чисел в программе робота и максимальное количество ошибок.
Во второй строке входного файла находятся \(n\) чисел \(a_i\) (\(−10^4 \le a_i \le 10^4 , \ a_i \ne 0\)) — программа робота.
В единственной строке выходного файла выведите максимальное расстояние в шагах, на которое мог удалиться робот, выполнив все команды и совершив не более \(k\) ошибок.
В первом примере робот мог, например, выполнить программу 1, 2, −1, 3 и в результате удалиться на 5 шагов на север.
4 1 1 2 -1 -3
5
7 2 5 -3 7 9 -2 -8 -1
29