Кыргызстан принимает участие в соревнованиях ICPC с 1996 года, когда был организован Северо-Восточный Европейский регион (NEERC).
В сезоне 2003-2004 команда Кыргызстана впервые вышла на финал ICPC, а уже в 2005 году в Кыргызстане провели первый региональный чемпионат ICPC.
С тех пор региональный чемпионат проводится ежегодно.
В 2019-м году из-за увеличения количества участников начали проводить дополнительный квалификационный этап — но из-за ковидных ограничений в 2020-м и 2021-м годах он не проводился.
Правда, это всё верно про студентов — школьные команды Кыргызстана, желавшие участвовать в финале ВКОШП, каждый год должны были отбираться по общему интернет-отбору.
И вот, в 2026-м году ситуация для школьных команд наконец-то изменилась — теперь параллельно со студенческим командным чемпионатом в Кыргызстане, являющимся отбором на NERC Finals, проводится школьный командный чемпионат, являющийся отбором на ВКОШП.
Как и в случае студенческих команд, школьным командам необходимо сначала пройти квалификационный этап, по итогам которого лучшие команды пройдут на основной этап чемпионата.
Автор данной задачи решил, что данное событие является хорошей основой для задачи.
Для заданного года $$$Y$$$ выведите все командные соревнования, которые проводились или будут проводиться в Кыргызстане в этом году.
В единственной строке дано целое число $$$Y$$$ $$$(2005 \le Y \le 2026)$$$ — год проведения соревнований.
В первой строке выведите целое число $$$k$$$ — количество командных соревнований, проведённых (или которые будут проведены) в году $$$Y$$$ в Кыргызстане.
В следующих $$$k$$$ строках выведите по одному соревнованию (в любом порядке):
Строки можно выводить в любом порядке.
2026
4 School Qual School Regional ICPC Qual ICPC Regional
2019
2 ICPC Qual ICPC Regional
2021
1 ICPC Regional
2007
1 ICPC Regional
В первом примере ($$$Y = 2026$$$) впервые в истории в один год проводятся сразу все четыре соревнования: студенческий чемпионат ICPC, квалификация к нему, а также впервые появившиеся школьный чемпионат и квалификация к нему.
Во втором примере ($$$Y = 2019$$$) — это первый год, когда, помимо студенческого регионального чемпионата ICPC, была проведена и квалификация к нему.
В третьем примере ($$$Y = 2021$$$) из-за ковидных ограничений квалификационный этап на студенческий чемпионат снова не проводился (как и в 2020 году), поэтому состоялся только сам региональный чемпионат ICPC.
В четвёртом примере ($$$Y = 2007$$$) — возвращаемся в 2007-й, когда проводился только региональный студенческий чемпионат ICPC без каких-либо квалификаций.
Одной из особенностей взрослой жизни является правильный подход к стирке вещей:
Примеров можно придумывать много, но здесь мы зафиксируем несколько основных правил «ответственного стирателя»:
В вашем гардеробе имеется $$$N$$$ предметов одежды, каждый задан цветом и типом.
Определите минимальное количество стирок, которое вам необходимо провести по описанным выше правилам.
В первой строке дано одно целое число $$$N$$$ $$$(1 \le N \le 10^4)$$$ — количество имеющихся предметов одежды.
В каждой из следующих $$$N$$$ строк дано описание одного предмета одежды в гардеробе: два слова через пробел $$$c_i$$$ $$$t_i$$$ — цвет и тип предмета одежды соответственно.
$$$c_i$$$ может быть одним из следующих слов:
$$$t_i$$$ может быть одним из следующих слов:
Выведите одно целое число — минимальное количество стирок с учётом всех описанных выше правил.
10Red SocksBlack JeansWhite T-shirtYellow T-shirtRed HoodieGreen SocksBlue T-shirtWhite T-shirtBlue HoodieGray Trousers
7
8Yellow T-shirtBlack T-shirtRed T-shirtGray T-shirtRed T-shirtBlue T-shirtGreen T-shirtBlue T-shirt
4
6Red SocksBlack SocksBlack SocksWhite SocksBlue SocksWhite Socks
1
9Blue HoodieBlack JeansWhite TrousersGreen HoodieRed HoodieBlue JeansBlue JeansWhite JeansWhite Hoodie
6
Пример 1.
Всего получилось $$$7$$$ стирок: $$$1$$$ на носки, $$$3$$$ на майки, $$$1$$$ на яркую кофту и $$$2$$$ на тёмные кофты и штаны.
Пример 2.
Всего получается $$$4$$$ стирки: по одной на красные, жёлтые, зелёные и тёмные майки, независимо от количества вещей каждого цвета.
Пример 3.
Все носки стираются в одну стирку, независимо от их количества и цвета.
Пример 4.
Всего получается $$$6$$$ стирок.
Вероятно, вы слышали легенду о Сизифе — в наказание за различные проступки перед богами он вынужден толкать тяжёлый камень вверх по горе.
Но когда камень достигает вершины — тут же скатывается вниз, и Сизиф вынужден всё начинать сначала.
Так продолжается уже не первое столетие — и Аид (правитель подземного мира) решил как-то разнообразить это действие.
Теперь Сизиф вынужден тянуть камень по бесконечной прямой.
За день Сизиф может протащить камень не более чем на $$$A$$$ метров вправо (в положительном направлении).
Но ночью начинает дуть сильный ветер, который сдувает Сизифа с камнем влево (в отрицательном направлении).
Чтобы добавить интереса, каждую ночь ветер усиливается — $$$i$$$-й ночью ветер сдует Сизифа на $$$i \cdot B$$$ метров влево.
Аиду интересно наблюдать за Сизифом, пока он делает хоть какие-то продвижения вправо. Иначе Аид меняет параметры $$$A$$$ и $$$B$$$ и начинает наказание Сизифа сначала.
Для каждого набора $$$A$$$ и $$$B$$$ вычислите, на какую максимальную дистанцию вправо Сизиф сможет продвинуться.
В первой строке дано целое число $$$Q$$$ $$$(1 \le Q \le 10^4)$$$ — количество различных вариантов наказаний.
Каждая из следующих $$$Q$$$ строк содержит через пробел два целых числа $$$A_i$$$ и $$$B_i$$$ $$$(1 \le A_i, B_i \le 10^9)$$$ — расстояние, на которое Сизиф может протащить камень вправо за один день, и начальная сила ветра для $$$i$$$-го варианта наказания.
Выведите $$$Q$$$ строк.
В $$$i$$$-й строке выведите одно целое число $$$D_i$$$ — максимальное положительное расстояние, на которое сможет продвинуться Сизиф в $$$i$$$-м наказании.
510 33 1042 4212345 876987654321 1
22 3 42 93195 487730529388812681
Первое наказание.
Рассмотрим координату Сизифа на прямой после каждого дня и ночи:
Можно заметить, что максимально Сизиф продвинулся на $$$22$$$ — дальше ветер будет сдвигать его всё сильнее и сильнее влево.
Второе наказание.
Аид понял, что перемудрил — и закончил это испытание.
Третье наказание.
Дальше продолжать уже было бессмысленно.
Четвёртое наказание.
Данный пример предназначен для дополнительной проверки корректности ваших вычислений.
Пятое наказание.
Данный пример предназначен для дополнительной проверки эффективности ваших вычислений.
А вы знали, что раньше на уроках информатики программировали даже калькуляторы?
Лично автор задачи узнал об этом от своих родителей, которые занимались подобным в конце 80-х годов.
В 2026-м году главным трендом является общение (и не только) с различными LLM-моделями в режиме чата.
А можно ли общаться подобным образом с чат-ботом, запрограммированным на калькуляторе?
Можно, если считать некоторые цифры похожими на буквы латинского алфавита:
А если перевернуть калькулятор, то можно увидеть ещё два соответствия:
Будем считать число $$$X$$$ «словом», если все его цифры похожи на буквы:
Ваша задача — определить количество похожих на слово чисел в промежутке $$$[0; N]$$$.
В единственной строке вводится одно целое число $$$N$$$ $$$(0 \le N \le 123456)$$$ — максимальная граница промежутка $$$[0; N]$$$.
Выведите через пробел два целых числа $$$C_1$$$ и $$$C_2$$$:
34
8 15
8051
202 1100
123456
1536 10368
Пример 1.
В обычном состоянии похожими на слово являются числа:
В перевёрнутом состоянии похожими на слово являются числа:
Пример 2.
Данный тест является дополнительной возможностью проверить, что ваш подсчёт выполняется корректно.
Пример 3.
Данный тест является проверкой, что ваш подсчёт выполняется достаточно эффективно (граница $$$N$$$ принимает максимально возможное значение).
Наступила осень — а значит, каждый задумывается о том, как же лето быстро пролетело...
Вроде бы и случилось много всего за три месяца — но в то же время кажется, что могло быть всего и побольше.
В этот раз вы подготовились основательно — и задокументировали все свои действия, разбив их на четыре категории:
Вас интересует суммарное время, потраченное на каждую из четырёх категорий действий.
В первой строке записано целое число $$$N$$$ ($$$1 \le N \le 2 \cdot 10^5$$$) — количество записей в логе.
Каждая из следующих $$$N$$$ строк содержит одну запись лога в формате $$$D$$$ $$$A$$$ (две строки через пробел), где:
Гарантируется, что:
Обратите внимание — подряд идущие записи могут содержать одинаковые действия.
Выведите $$$4$$$ строки, в каждой из которых выведите суммарное время, потраченное на соответствующий тип действия.
Порядок вывода строк — S, W, T, R (сон; учёба / работа; время в дороге; развлечения соответственно).
Каждую строку необходимо выводить в формате DD hh:mm:ss — количество суток, часов, минут и секунд, потраченных на данный тип действия за всё лето.
Считайте, что лето заканчивается ровно в момент 09.01 00:00:00 (то есть последнее действие в логе продолжается до этого момента).
1006.01 00:00:00 S06.01 09:12:34 W06.02 00:59:47 S06.02 08:00:00 W07.16 07:45:00 T07.16 12:58:27 R08.01 20:21:53 R08.25 18:00:07 T08.25 23:57:59 S08.26 08:00:00 W
S 1 00:14:48 W 50 07:32:13 T 0 11:11:19 R 40 05:01:40
206.01 00:00:00 T08.29 09:12:34 W
S 0 00:00:00 W 2 14:47:26 T 89 09:12:34 R 0 00:00:00
Пример 1.
Рассмотрим данный лог по шагам:
Пример 2.
Рассмотрим данный лог по шагам:
Обратите внимание, что хотя записей вида S и R нет в логе — вы всё равно должны вывести суммарное время и для них (в данном случае оно будет нулевым, то есть 00 00:00:00).
У кассира есть бесконечное количество банкнот с номиналами $$$1, 2, \ldots, K$$$.
Кассир предпочитает, чтобы стопки с банкнотами заканчивались равномерно:
Помогите кассиру — найдите любой способ выдать $$$N$$$ денежных единиц сдачи равномерно.
В единственной строке через пробел даны два целых числа $$$N$$$ и $$$K$$$ ($$$1 \le N \le 10^{18}$$$; $$$1 \le K \le 2 \cdot 10^5$$$) — сумма сдачи и количество различных доступных номиналов.
Выведите через пробел $$$K$$$ целых чисел $$$C_1, C_2, \ldots, C_K$$$ ($$$0 \le C_i \le N$$$) — количество банкнот номиналом $$$i$$$ в равномерной выдаче сдачи $$$N$$$.
Ответ должен удовлетворять следующим условиям:
Если существует несколько ответов, удовлетворяющих условиям, выведите любой из них.
10 3
2 1 2
61 7
1 3 3 3 3 3 0
В первом примере кассир выдал:
Суммарно кассир выдал $$$C_1 \cdot 1 + C_2 \cdot 2 + C_3 \cdot 3 = 10$$$ денежных единиц.
Во втором примере кассир выдал:
Суммарно кассир выдал $$$1 \cdot 1 + 3 \cdot (2 + 3 + 4 + 5 + 6) + 0 \cdot 7 = 61$$$ денежную единицу.
Обратите внимание, что это лишь один из возможных вариантов ответа с $$$\max(C_1, \ldots, C_7) = 3$$$. Можно показать, что не существует ответа, где $$$\max(C_1, \ldots, C_7)$$$ меньше $$$3$$$.
Вам дана перестановка $$$P$$$ длины $$$N$$$.
Для каждого префикса этой перестановки требуется вычислить его медиану.
В первой строке задано одно целое число $$$N$$$ $$$(1 \le N \le 2 \cdot 10^5)$$$ — длина перестановки.
Во второй строке через пробел задано $$$N$$$ целых чисел $$$P_1, P_2, \ldots, P_N$$$ $$$(1 \le P_i \le N)$$$ — элементы перестановки.
Гарантируется, что все значения $$$P_i$$$ различны.
Выведите через пробел $$$N$$$ целых чисел $$$M_1, M_2, \ldots, M_N$$$, где $$$M_i$$$ — удвоенная медиана элементов $$$P_1, \ldots, P_i$$$ (то есть медиана первых $$$i$$$ элементов перестановки, умноженная на $$$2$$$).
75 2 1 4 7 6 3
10 7 4 6 8 9 8
Медианой набора из $$$k$$$ чисел, упорядоченных по неубыванию как $$$a_1 \le a_2 \le \ldots \le a_k$$$, называется:
Поскольку медиана при чётном $$$k$$$ может быть нецелой, в качестве ответа нужно вывести её удвоенное значение — оно всегда является целым числом.
Рассмотрим первый пример по шагам. На каждом шаге $$$i$$$ рассматривается отсортированный по неубыванию набор первых $$$i$$$ элементов перестановки, и вычисляется его удвоенная медиана $$$M_i$$$: