Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Сегодня Леша проходил в школе деление столбиком. На дом ему задали вычислить частное двух больших чисел: \(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
Каждый год в честь дня города в Южно-Берляндске проводится открытая эстафета. В конкурсе участвуют команды из \(k\) человек, в процессе эстафеты участники команды должна посетить \(n\) контрольных пунктов.
Контрольные пункты пронумерованы от \(1\) до \(n\), место старта обозначим как пункт \(0\). Соревнование проходит следующим образом: первый участник из команды стартует из пункта \(0\), пробегает по некоторым \(a_1\) ранее не посещенным контрольным пунктам, возвращается в пункт \(0\) и передает эстафету второму участнику. После этого второй участник пробегает какие-либо \(a_2\) ранее не посещенных контрольных пунктов, возвращается и передает эстафету следующему. Эстафета продолжается, пока последний участник не посетит \(a_k\) ранее не посещенных контрольных пунктов и не вернется на старт. Передача эстафеты происходит мгновенно. Цель команды — пробежать эстафету как можно быстрее.
Учащиеся Южно-Берляндского бегового училища решили заранее подготовиться к состязанию. Они раздобыли план соревнования, из которого они узнали числа \(a_i\), а также выяснили про каждую пару пунктов, за какое время можно успеть добежать от одного до другого. Все участники команды перемещаются с одинаковой скоростью, поэтому это время не зависит от того, кто побежит между этими пунктами.
Помогите участникам составить маршрут, в котором команда пробежит эстафету как можно быстрее.
В первой строке находятся два целых числа \(n\) и \(k\) (\(1 \le n \le 18, \ 1 \le k \le n\)) — число контрольных пунктов и число участников в команде.
Во второй строке находятся \(k\) целых чисел \(a_i\) (\(1 \le a_i \le n, a_1 \ + \ a_2 \ + \ \dots \ + \ a_k \ = \ n\)) — число контрольных пунктов, которые должен пробежать \(i\)-й участник.
В следующих \(n \ + \ 1\) строках находится по \(n \ + \ 1\) целому числу \(b{i,\ j} \ (1 \le b_{i, \ j} \le 10^6, \ b_{i, \ j} \ = \ b_{j, i}, b_{i, \ i} \ = \ 0\)) — время, за которое можно добежать от \(i\)-го пункта до \(j\)-го для \(i\) и \(j\) от \(0\) до \(n\).
В единственной строке выведите одно целое число — минимальное время, за которое команда может пробежать эстафету.
2 2 1 1 0 1 2 1 0 3 2 3 0
6
4 2 2 2 0 1 4 2 5 1 0 2 6 6 4 2 0 6 6 2 6 6 0 2 5 6 6 2 0
16
Лера часто ездит по работе из Санкт-Петербурга в Москву и обратно. Так как дела у нее всегда срочные, добирается до места назначения она всегда на Сапсане. Как известно, в каждом вагоне Сапсана расположено ровно \(n\) мест, а именно \(\frac{n}{2}\) рядов по два места в каждом (\(n\) четное).
Однажды по пути домой после деловой встречи у Леры не было соседа, и ей стало скучно. Поэтому она задалась вопросом: сколько максимум человек можно посадить в вагон Сапсана, чтобы ровно у половины людей был сосед. Помогите Лере ответить на этот сложный вопрос.
В первой и единственной строке входного файла дано число \(n \ (2 \le n \le 10^9\) ) — количество мест в вагоне Сапсана. Гарантируется, что число \(n\) четное.
В единственной строке выходного файла выведите максимальное количество человек, которое можно посадить в вагон так, что ровно у половины из них есть сосед.
На рисунке приведено одно из возможных размещений пассажиров в примере. Заштрихованные клетки соответствуют занятым местам.
20
12