qual VKOSHP Junior 24
A. Многоноги и многоголовы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

На далёкой-далёкой планете по полю гуляют многоноги и многоголовы. У каждого из многоногов ровно $$$1$$$ голова и $$$19$$$ ног. У каждого из многоголовов ровно $$$7$$$ голов и $$$4$$$ ноги.

Космозоологи Шапкин и Башмаков решили пересчитать животных. Шапкин насчитал $$$A$$$ голов, а Башмаков — $$$B$$$ ног. Помогите им узнать, сколько животных гуляло по полю?

Входные данные

В единственной строке задаются два натуральных числа $$$A$$$ ($$$1 \le A \le 10^8$$$) — количество голов и $$$B$$$ ($$$1 \le B \le 10^8$$$) — количество ног.

Выходные данные

Выведите через пробел два целых числа: количество многоногов и многоголовов. Если ответов может быть несколько, выведите любой из них.

Если космозоологи ошиблись в расчётах, выведите -1.

Примеры
Входные данные
23
50
Выходные данные
2 3
Входные данные
2
19
Выходные данные
-1
Примечание

В первом примере из условия суммарно 23 головы и 50 ног. Такое возможно только если на планете ровно 2 многонога и 3 многоголова.

Количество голов у них будет $$$1\times 2 + 7\times3 = 23$$$, а количество ног будет равно $$$19\times 2 + 3\times 4 = 50$$$.

Во втором примере из условия учёные наблюдают 2 головы и 19 ног. Но так как у многоголова ровно 7 голов, это означает, что на планете нет многоголовов (иначе голов было бы хотя бы 7). А значит, многоногов на планете ровно 2 (по числу голов). Но в таком случае суммарно на пленете было бы ровно $$$2 \times 19 = 38$$$ ног. А это не так.

Значит, космозоологи ошиблись со своими подсчётами.

B. Кирилл и кролики
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Кирилла дома живут кролики. Каждый кролик может съесть не меньше $$$a$$$ и не больше $$$b$$$ морковок за один приём пищи. При этом известно, что каждый кролик всегда ест одинаковое целое число морковок. То есть, если он за первый приём пищи съел $$$3$$$ морковки, то и за второй приём он съест столько же.

Кирилл посчитал, что за два последних приёма пищи кролики суммарно съели $$$n$$$ морковок. Какое наибольшее количество кроликов может жить у Кирилла дома?

Входные данные

Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 10^{15}$$$) — количество морковок, которые съели кролики за два приёма пищи.

Следующие две строки содержат по одному числу $$$a$$$ и $$$b$$$ ($$$1 \le a \le b \le 10^{15}$$$) — минимальное и максимальное количество морковок, которое может съесть один кролик за один приём пищи.

Выходные данные

Выведите одно число — максимальное возможное количество кроликов у Кирилла.

Если Кирилл ошибся в подсчетах, выведите -1.

Примеры
Входные данные
8
2
3
Выходные данные
2
Входные данные
15
3
4
Выходные данные
-1
Примечание

В первом примере если у Кирилла есть два кролика, каждый из которых ест по две морковки за приём, то за два приёма они съедят ровно восем морковок.

У Кирилла не может быть 3 или больше кроликов, так как в таком случае, если каждый из них будет есть не меньше двух морковок за приём, то за два приёма 3 кролика будут съедать 12 морковок, что больше, чем 8.

Во втором примере суммарный ответ для двух приёмов 15, но разделить это число на два нацело не получается. А значит, Кирилл допустил неточность в подсчётах.

C. Спой, птичка!
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Орнитолог Олег приехал в новый парк, чтобы насладиться пением птиц. Он слышал, что здесь обитает ровно $$$n$$$ различных птиц. Каждой из птиц он хочет поставить оценку, при этом сделать это так, чтобы все оценки были различны.

Пение каждой птицы он слушает ровно одну минуту. Если пение очередной птицы ему нравится меньше, чем какой-либо из услышанных ранее, то он ищет птицу, пение которой ему понравилось больше всего, после чего слушает её еще раз и переходит к следующей непрослушанной птице.

Гуляя по парку, Олег совсем потерял счёт времени. У него остались только оценки, которые он ставил птицам. Теперь Олег хочет узнать, сколько суммарно минут он провёл, слушая птиц. А также он хочет узнать, какое максимальное число раз он слушал одну и ту же птицу.

Входные данные

В первой строке вводится единственное натуральное число $$$n$$$ ($$$1\le n \le 200\,000$$$) — количество птиц в парке.

В следующей строке через пробел вводятся $$$n$$$ натуральных чисел $$$(1 \le a_i \le 10^9)$$$ — оценка, которую Олег поставил $$$i$$$-й птице. Обратите внимание на то, что все оценки различны.

Выходные данные

Выведите через пробел два целых числа: количество минут, суммарно Олег слушал птиц, а также максимальное число раз, которое он слушал одну и ту же птицу.

Пример
Входные данные
6
2 4 1 3 5 6
Выходные данные
8 3
Примечание

В примере из условия происходило следующее:

  1. Олег послушал первую птицу и поставил ей оценку 2.
  2. Олег послушал вторую птицу и поставил ей оценку 4.
  3. Олег послушал третью птицу и поставил ей оценку 1. Так как ранее до этого он уже слышал птицу, которая понравилась ему больше, он во второй раз после этого послушал вторую птицу, у которой к тому моменту была самая высокая оценка.
  4. Олег послушал четвёртую птицу и поставил ей оценку 3. Так как ранее до этого он уже слышал птицу, которая понравилась ему больше, он во второй раз после этого послушал вторую птицу.
  5. Олег послушал пятую птицу и поставил ей оценку 5.
  6. Олег послушал шестую птицу и поставил ей оценку 6.

Таким образом Олег суммарно 8 раз слушал птиц, при этом он послушал вторую птицу 3 раза:

  • первый раз, когда подошёл к ней впервые и дал ей оценку $$$4$$$
  • второй раз после птицы с номером $$$3$$$, пение которой Олег оценил в $$$1$$$
  • третий раз после птицы с номером $$$4$$$, пение которой Олег оценил в $$$3$$$

D. Сколько ошибок?
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Недавно Гриша начал изучать английский язык. Для этого он обратился к Мудрой Сове. Она разработала для Гриши специальную систему тренировок.

Известно, что во время тренировки $$$n$$$ раз происходило следующее:

  1. Сова дает Грише аудио, которое он прослушивает.
  2. Гриша записывает текст, который только что услышал.
  3. Сова показывает правильный ответ.
Также известно, что Гриша смог ответить верно на все задания Совы.

Сова точно засчитывает ответ Гриши, если он совпадает с правильным ответом. Но также Сова может засчитать ответ, если он немного отличается (могут быть пропущены знаки препинания, слова написаны в другом регистре или может быть изменен порядок слов, незначительная опечатка и т.п.).

Если ответ засчитан, то Сова больше не даёт это задание Грише, иначе повторит его ещё раз.

Поскольку во время обучения необходимо следить за прогрессом, Сова просит вас подсчитать количество заданий, в которых Гриша делал ошибки.

Входные данные

В первой строке вводится единственное целое число $$$n$$$ $$$(1 \le n \le 40\,000)$$$ — количество примеров, которые дала Сова во время тренировки.

В следующих $$$2n$$$ строках вводятся сами примеры: сначала строка с вводом Гриши, затем строка с правильным ответом.

Гарантируется, что суммарная длина всех строк не превышает $$$200\,000$$$

Выходные данные

Выведите единственное целое число — количество заданий, на которые Гриша не ответил правильно с первого раза.

Пример
Входные данные
4
Who possted this photo
Who posted this photo
You are welcome
You are welcome
Who posted this foto
Who posted this photo
Who posted this phota
Who posted this photo
Выходные данные
1
Примечание

На уроке прозвучало четыре примера.

  • В первом примере ответ Гриши не был засчитан.
  • На второй пример он дал верный ответ.
  • Третьим примером Сова дала опять первое задание, но Гриша снова ответил неверно.
  • Четвертый пример, снова задание про «фото», но Гриша с ним справился.
Ответ: Гриша совершал ошибки только в одном задании «Who posted this photo»

E. Бассейн или лужайка?
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У семьи Добровых есть два домашних пса — Шарик и Тузик. Они постоянно соперничают, каждый пытается забрать себе что-то самое большое: самую большую лежанку, самую большую палку и т.д.

Двор семьи можно представить как прямоугольник $$$n$$$ на $$$m$$$ квадратных плиток. Часть двора Добровы решили сделать бассейном. Для этого квадратики, которые обозначают бортики бассейна, уже отметили на карте цифрами $$$1$$$. Всё пространство двора между бортиками бассейна по горизонтали и вертикали будет частью бассейна.

Тузик подсмотрел карту строительства и теперь должен быстро решить какую территорию ему объявить своей — зону бассейна с водой и бортиками для лежания в шезлонге или остальной участок двора с шелковистой зелёной травой.

Входные данные

В первой строке через пробел заданы два натуральных числа $$$n$$$ и $$$m$$$ ($$$1\le n\times m \le 300\,000$$$) — размеры участка.

Далее заданы $$$n$$$ строк, состоящих из символов $$$0$$$ и $$$1$$$.

$$$1$$$ означают бортики бассейна, а $$$0$$$ — остальные участки двора, в том числе те, которые будут заняты бассейном.

Гарантируется, что на плане есть ровно одна область из нулей, окружённая единицами, граничащими по горизонтали, вертикали или диагонали.

Выходные данные

Выведите одно целое число — максимальную площадь участка, которую может объявить своей Тузик.

Пример
Входные данные
5 6
001111
011010
010010
001100
000000
Выходные данные
16
Примечание

Рассмотрим тестовый пример На схеме участка, нарисованной строителями, красным обозначены квадраты бортиков бассейна.

Выделим красным цветом всю зону бассейна, а синим оставим площадь лужайки.

Бассейная зона занимает 14 клеток, а зона лужайки — 16. Тузику выгодно объявить своей территорией зону лужайки площадью $$$16$$$ квадратов.

F. Лягушка и ягоды
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
128 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На болоте, где живет Лягушка, в ряд расположены $$$n$$$ кочек. Изначально лягушка находится на $$$1$$$-й кочке, а в итоге хочет попасть на $$$n$$$-ю. Обычно Лягушка прыгает с $$$i$$$-й кочки на $$$i+1$$$-ю. Но один раз в течение своего пути она может совершить прыжок длиной $$$k$$$, т.е. попасть с $$$i$$$-й кочки на $$$i+k$$$-ю, если только $$$i+k$$$ не превышает $$$n$$$.

На каждой из кочек растут ягоды, на каких-то кочках вкусные и полезные, например кустик с черникой, а на каких-то — совсем не полезные или даже ядовитые. Лягушка очень голодная и не очень разбирается в ягодах, поэтому она съедает все ягоды на всех кочках, на которых она оказывается. От хороших ягод её здоровье улучшается, а от плохих ягод наоборот ухудшается.

Самочувствие лягушки выражается целым числом. Когда лягушка оказывается на $$$i$$$-й кочке и съедает там все ягоды, её самочувствие меняется на величину, равную $$$a_i$$$.

Лягушка очень занята поеданием ягод, поэтому она просит вас посчитать, на какую максимальную величинуможет увеличиться её самочувствие в результате её пути с $$$1$$$-й кочки до $$$n$$$-й.

Входные данные

В первой строке через пробел вводятся два натуральных числа: $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 3\cdot 100\,000$$$) — количество кочек на болоте и то, на какую величину Лягушка может один раз в течение своего пути совершить длинный прыжок.

Во второй строке через пробел вводятся $$$n$$$ целых чисел $$$(-10^9 \le a_i \le 10^9)$$$ — то, на сколько изменится здоровье лягушки при посещении $$$i$$$-й кочки.

Выходные данные

Выведите единственное целое число — максимальную величину, на которую может измениться самочувствие Лягушки.

Примеры
Входные данные
5 2
1 2 -3 4 5
Выходные данные
12
Входные данные
5 2
1 2 3 4 5
Выходные данные
15
Входные данные
6 4
-5 -10 -20 25 4 -1
Выходные данные
-2
Примечание

В первом примере Лягушка сделает длинный прыжок со $$$2$$$-й кочки сразу на $$$4$$$-ю и не съест вредные ягоды на $$$3$$$-й кочке. Таким образом, посетив кочки 1,2,4,5, её самочувствие увеличится на $$$1+2+4+5=12$$$.

Во втором примере Лягушке не выгодно делать длинный прыжок, так она пропустит полезные ягоды на своём пути. Если она посетит все кочки, то её самочувствие увеличится на $$$1+2+3+4+5=15$$$.

В третьем примере Лягушке выгодно сделать прыжок с $$$1$$$-й кочки на $$$5$$$-ю. Таким образом она посетит кочки с номерами 1, 5 и 6 и её здоровье изменится на $$$(-5) + 4 + (-1) = -2$$$.

Самым выгодным для Лягушки был бы прыжок с $$$1$$$-й кочки длиной $$$3$$$, а не $$$4$$$, но такой возможности у неё нет.

G. Медведь и правильное питание
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
128 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Перед зимней спячкой Медведь должен набрать как можно больше калорий. Поэтому накануне спячки он идет к своему другу Михалычу на склад, чтобы как следует покушать.

В кладовой у Михалыча есть $$$n$$$ продуктов. Для $$$i$$$-го продукта известны два параметра: $$$t_i$$$ — сколько ещё часов этот продукт будет лежать на складе и $$$k_i$$$ — калорийность продукта в килокалориях.

Медведь попадает в кладовую и за один час может съесть не более одного продукта. Когда проходит $$$t_i$$$ часов с момента появления Медведя на складе $$$i$$$-й продукт увезут со склада.

Зная калорийность продуктов склада и расписание отгрузки, посчитайте максимальную суммарную калорийность съеденных продуктов, которую может съесть Медведь.

Входные данные

В первой строке дано единственное целое число $$$n$$$ ($$$1\le n \le 200\,000$$$) — количество продуктов в кладовой.

В $$$i$$$-й из следующих $$$n$$$ строк дана пара разделённых пробелом чисел $$$t_i$$$ ($$$1\le t_i \le 200\,000$$$) и $$$k_i$$$ ($$$1\le k_i \le 10^9$$$) — сколько ещё часов $$$i$$$-й продукт будет находиться на складе, и его калорийность соответственно.

Выходные данные

Выведите единственное целое число — максимальную суммарную калорийность съеденных Медведем продуктов в килокалориях.

Пример
Входные данные
5
1 5
9 2
8 3
2 4
2 6
Выходные данные
16
Примечание

В тестовом примере Медведь сразу как придет на склад будет есть продукт, который должны увезти в час дня. После этого у него есть один час, после которого увезут сразу два продукта. Медведь будет есть продукт с большей калорийностью. Следующие продукты увезут со склада в $$$8$$$ и $$$9$$$ часов. Поэтому у Медведя хватит времени чтобы съесть их оба.

Итого: $$$5 + 6 + 3 + 2 = 16$$$ килокалорий.

H. Корм для животных
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Волонтёры «Летово» собрали для приюта для животных $$$n$$$ контейнеров с кормом. В $$$i$$$-м контейнере лежат $$$c_i$$$ упаковок кошачьего корма и $$$d_i$$$ упаковок корма для собак. Так получилось, что число $$$n$$$ — нечётное.

На день выездов ребята поехали в приют и захотели взять с собой корм. Но в микроавтобус не помещаются все контейнеры. Ребята рассчитали, что в салон поместится не более половины контейнеров, и ещё один можно поставить в кабину водителя. Ребята хотят выбрать и взять с собой такие контейнеры, чтобы количество пакетов корма для кошек и собак было не меньше половины от общего числа пакетов кошачьего и собачьего корма во всех контейнерах.

Помогите ребятам выбрать нужные контейнеры.

Входные данные

В первой строке задано целое нечётное число $$$n$$$ $$$(1 \le n \le 200\,000)$$$ — количество контейнеров.

В каждой из следующих $$$n$$$ строк через пробел заданы два числа $$$c_i$$$ и $$$d_i$$$ ($$$0 \le c_i, d_i \le 10^8$$$) — количество упаковок кошачьего и собачьего корма в $$$i$$$-м контейнере.

Выходные данные

Если ребята смогут взять с собой половину всего корма для кошек и половину всего корма для собак, то выведите число $$$k$$$ – количество контейнеров, которые необходимо взять.

На следующей строке выведите $$$k$$$ чисел, разделённых пробелами — номера контейнеров.

Если вариантов ответа несколько, выведите любой из них. Обратите внимание, что число контейнеров не нужно минимизировать, достаточно, чтобы они помещались в автобус.

Если ребята не смогут взять с собой нужное число корма, выведите -1.

Пример
Входные данные
5
12 7
18 13
1 18
5 6
7 9
Выходные данные
3
2 5 3 
Примечание

В первом примере ребята могут взять контейнеры с номерами 2, 3 и 5.

Суммарно во всех контейнерах 43 пакета кошачьего корма, а в выбранных контейнерах: 18 + 1 + 7 = 26.

Пакетов собачьего корма суммарно 53, в выбранных контейнерах: 13 + 18 + 9 = 40.

I. Андрей и ролики с животными
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Андрей подобрал $$$N$$$ роликов со смешными животными. Каждый ролик описывается заглавными латинскими буквами, которые обозначают фрагменты с разными животными.

Например: CDTPPPD обозначает ролик, в котором сначала показывается фрагмент с котиками (Сat), затем с собаками (Dog), потом идут черепашки (Turtle) и т.д.

Длина каждого фрагмента 10 секунд.

Андрей хочет потратить на просмотр роликов про животных ровно $$$M$$$ минут. Ролики можно смотреть в любом порядке, но если Андрей начинает смотреть ролик, то досматривает его до конца. Каждый ролик можно посмотреть только один раз. Еще одно пожелание для плейлиста — последний просмотренный фрагмент последнего ролика должен быть обязательно про котика.

Помогите Андрею составить плейлист вечернего просмотра роликов, так чтобы выполнялись все описанные выше условия.

Если таких вариантов несколько, то выведите любой из них.

Входные данные

В первой строке через пробел даны два целых числа $$$N$$$ $$$(1 \le N \le 2000)$$$ и $$$M$$$ $$$(1 \le M \le 1000)$$$ — количество роликов и время, которое Андрей готов выделить на просмотр соответственно.

В каждой из следующих $$$N$$$ строк идет описание очередного видео в формате строки, состоящей из заглавных английских букв.

Суммарная длина строк, описывающих ролики, не превышает $$$30000$$$ букв.

Выходные данные

Если возможно смотреть ролики ровно $$$M$$$ минут и при этом, закончить просмотр на видео с котиком, в первой строке выведите «YES», в следующей число $$$k$$$ — количество роликов, которые будет смотреть Андрей. В третьей строке через пробел выведите $$$k$$$ различных чисел — номера этих роликов (ролики нумеруются в порядке следования во входных данных). Иначе, выведите «NO».

Примеры
Входные данные
5 5
DDDDDDDDDDDD
PDPDPDCDCP
PCCC
PPDCDDTC
TC
Выходные данные
YES
3
1 2 4 
Входные данные
5 5
DDDDDDDDDDDD
PDPDPDCDCP
PCCC
PPDCDDTD
TC
Выходные данные
NO

J. Кирилл, Антон и длинные имена
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В Космозоопарке Кирилл и Антон увидели много необычных животных. Имя каждого из животных представляет собой одно или несколько слов, каждое из которых написано с большой буквы, соединённых в одно слово без пробелов. Например, LionRedBlueBig — корректное имя животного. Обратите внимание, что каждое такое имя можно разбить на отдельные слова, каждое из которых будет описывать основные характеристики животного.

МГ и ВМ попросили их описать свои впечатления от увиденного. Ребята решили отправить на Землю свой ответ в виде строки $$$S$$$. Проблема в том, что межгалактическая связь весьма затратна, и длина отправленной строки не может превышать $$$L$$$.

Чтобы сократить строку, Кирилл и Антон решили сократить некоторые имена. При этом должны соблюдаться следующие правила:

  1. Строки можно обрезать только с конца.
  2. Можно обрезать только целое число частей имени, т.е. отрезаемая часть начинается с заглавной буквы. Так, LionRedBlueBig можно обрезать до LionRedBlue..., LionRed..., Lion..., ..., но нельзя до LionRe....
  3. Если имя обрезано, то в конце к нему приписываются три точки.
  4. От всех имен должно быть отрезано одинаковое количество частей.
  5. Длина строки не должна превышать $$$L$$$. Если ответов несколько, выведите тот, в котором количество обрезанных частей имен минимально.
Пожалуйста, скажите друзьям, как будет выглядеть сжатая строка $$$S$$$ после укорачивания имен.
Входные данные

В первой строке задано написанное Кириллом и Антоном сообщение — строка $$$S$$$, длина которой не превышает $$$200\,000$$$ символов.

Во второй строке идет число $$$L$$$

Гарантируется, что заглавные буквы встречаются только в именах; после каждого имени следует либо пробел, либо окончание строки; перед каждым именем идет либо пробел, либо начало строки; строка $$$S$$$ не содержит двух пробелов подряд.

Выходные данные

Если строку $$$S$$$ можно сократить, соблюдая все правила, то выведите полученную строку. Если невозможно, то выведите -1.

Примеры
Входные данные
LionRareBlackCave and TigerAmurWhite are friends
40
Выходные данные
LionRare... and Tiger... are friends


Входные данные
LionRareBlackCave and TigerAmurWhite are friends
28
Выходные данные
Lion... and ... are friends


Входные данные
LionRareBlackCave and TigerAmurWhite are friends
16
Выходные данные
-1