ICPC Central Russia Regional Contest (CRRC 20), Чемпионат Центральной России, квалификационный раунд
A. Кто ближе?
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

У молодой рыжей собаки — помеси таксы с дворняжкой — очень насыщенная жизнь. Так, однажды Каштанка потеряла своего хозяина, столяра Луку Александровича, однако её подобрал клоун цирка Некит Суханов. В цирке она обрела новую кличку — Тётка.

На первом представлении Тётку узнали пришедшие на представление Лука Александрович и его сын Федя и начали звать собаку по её старой кличке. В то же время Некит зовёт собаку по её новому имени. Положение трёх участников этой душераздирающей истории можно представить как точки на оси Ox. В том случае, если собака находится ближе к клоуну, она останется работать в цирке, если она находится ближе к своему прежнему хозяину, то вернётся к нему. Если собака будет находиться от двух действующих лиц на одном и том же расстоянии, то она вернётся к прежнему хозяину, ведь столько лет было прожито вместе с ним.

Помогите собаке определить её дальнейшую судьбу.

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

В единственной строке содержатся 3 различных числа — координаты Некита Суханова, Луки Александровича и собаки соответственно. Координаты — целые неотрицательные числа, не превышающие 106.

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

В единственной строке выведите «Tetka»(без кавычек), если собака останется с Некитом Сухановым, и «Kashtanka»(без кавычек), если она вернётся к Луке Александровичу.

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

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

Инженер Васечкин наконец доделал свою машину времени и отправился в $$$d$$$-й день $$$m$$$-го месяца $$$y$$$-года, выставив эту дату на панели управления. После временно-пространственной телепортации он заметил, что на висящем в местной пивной календаре дата не соответствует той, что выставлена на панели управления. «Забыли дату перевести», – подумал он, но и в другом баре была та же история.

Когда пришло время возвращаться обратно, Васечкин не изменил дату на панели управления, и поэтому вернулся на несколько дней позже, чем планировалось. Только потом он понял, что количество потерянных дней – это разница в юлианском и григорианском календарях.

Задана дата из григорианского календаря, определить, на сколько от неё отстает юлианский календарь, т.е. сколько дней потерял Васечкин.

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

В единственной строке содержатся числа $$$d, m, y$$$ $$$(1 \le d \le 31, 1 \le m \le 12, 1582 \le y \le 2500)$$$ – день, месяц и год даты из григорианского календаря. Гарантируется, что дата корректна и находится в промежутке между $$$15$$$ октября $$$1582$$$ года и $$$17$$$ марта $$$2500$$$ года.

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

В единственной строке выведите число – разницу в днях между датой в юлианском календаре и датой в григорианском календаре.

Примеры
Входные данные
15 11 1582
Выходные данные
10
Входные данные
31 1 1918
Выходные данные
13

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

Программисту Мише очень нужно написать фильтр плохих слов, которые пользователи сети «КотВТанке» не могут использовать при общении друг с другом.

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

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

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

В единственной строке входных данных содержится строка $$$s$$$ длиной не более $$$100000$$$. Строка состоит из строчных латинских букв.

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

В единственной строке выведите «BAD», если строка является плохой, или «GOOD», если она является хорошей.

Примеры
Входные данные
good
Выходные данные
GOOD
Входные данные
bad
Выходные данные
GOOD
Входные данные
zashtsheeshtschayjushtsheekhsya
Выходные данные
BAD
Входные данные
dlinnosheee
Выходные данные
BAD
Примечание

Гласные буквы в латинском алфавите – «a», «e», «i», «o», «u», «y».

D. Различные элементы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Эта задача была придумана авторами самой первой, а вот предысторию к ней так и не сочинили. Поэтому мы вас просим найти количество различных элементов в массиве, состоящем из N чисел ai, которые больше x и меньше y.

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

В первой строке число N (1 ≤ N ≤ 150000) — количество элементов в массиве. Во второй строке два числа x и y ( - 2·109 ≤ x ≤ y ≤ 2·109) В третьей строке находятся элементы массива ai ( - 2·109 ≤ ai ≤ 2·109).

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

Вывести одно число — ответ на задачу.

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

E. Камень, ножницы, бумага...
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Два контролёра — весёлый и грустный — решили поиграть в какую-нибудь игру. В «камень, ножницы, бумага» они решили не играть, т.к. играли в неё позавчера. В «камень ножницы, бумага, ящерица, Спок» они играли вчера.

Сегодня пришла очередь игры «камень, ножницы, бумага, пассатижи, нож, топор и весёлый контролёр». Правила игры очень просты. Камень выигрывает у ножниц, весёлого контролёра и ножа. Ножницы выигрывают у бумаги, пассатиж и весёлого контролёра. Бумага выигрывает у топора, камня и пассатиж. Пассатижи выигрывают у камня, ножа и топора. Нож выигрывает у весёлого контролёра, бумаги и ножниц. Топор выигрывает у ножа, ножниц и камня. Весёлый контролёр выигрывает у пассатиж, топора и бумаги.

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

Камень – stone

Ножницы – scissors

Бумага – paper

Пассатижи – pliers

Нож – knife

Топор – ax

Весёлый контролёр – controller

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

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

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

Выведите единственное число – результат игры. Если выигрывает весёлый контролёр, то выведите «1». Если грустный, то «-1». Если будет ничья, то «0».

Примеры
Входные данные
stone paper
Выходные данные
-1
Входные данные
ax ax
Выходные данные
0

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

Володя играет в CraftWar и поставил улучшать одно из строений крепости. На улучшение строения требуется $$$t$$$ минут. Володя посчитал, что ждать $$$t$$$ минут долго, поэтому купил эликсир ускорения строительства, который позволяет ускорить процесс в $$$k$$$ раз и действует в течение $$$p$$$ минут, и активировал его в тот же момент, когда началось улучшение строения. В оставшееся время после окончания действия эликсира строительство проходит с обычной скоростью. Сколько времени уйдет на улучшение строения в крепости с использованием этого эликсира?

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

В единственной строке содержатся $$$3$$$ целых числа через пробел: $$$t$$$, $$$k$$$, $$$p$$$ ($$$1 \le t, k \cdot p \le 10^9$$$) соответственно.

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

Выведите количество целых минут, которое уйдёт на улучшение строения в крепости.

Пример
Входные данные
2640 10 60
Выходные данные
2100
Примечание

В первом примере на улучшение постройки без ускорений должно уйти $$$44$$$ часа ($$$2640$$$ минут), а эликсир ускоряет строительство в $$$10$$$ раз на $$$1$$$ час ($$$60$$$ минут).

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

Математики Саша и Женя придумывают новые задачи по дороге в кампус, по очереди усложняя тривиальные утверждения.

Однажды Александра заметила:

— Каждое натуральное число $$$N$$$ можно представить в виде суммы натуральных слагаемых.

— Ха-ха! — посмеялась Евгения и добавила: — При этом все слагаемые могут иметь одинаковую сумму цифр.

— Несомненно, — парировала Саша. — Пусть при этом количество слагаемых будет не меньше $$$2$$$, строго меньше $$$N$$$ и не больше, чем $$$10^6$$$.

— Что ж, — задумалась Женя, — готова привести пример для $$$N \leq 10^{18}$$$. Хотя, похоже, не для каждого $$$N$$$ такой пример существует.

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

В единственной строке число $$$N$$$ ($$$1 \leq N \leq 10^{18}$$$).

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

В первой строке выведите число $$$M$$$ — количество слагаемых ($$$2 \leq M \leq \min (N-1, 10^6$$$)), во второй строке — сами слагаемые через пробел.

Если указанного представления числа в виде суммы слагаемых с одинаковой суммой цифр не существует, выведите в единственной строке «$$$−1$$$» (без кавычек).

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

H. Пешка туда-сюда
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Для олимпиады по программированию жюри попросило инопланетянина Нибо составить задачу. Нибо очень обрадовался и решил придумать самую сложную задачу. Сначала он придумал задачу, в которой из одной клетки шахматной доски нужно пройти в другую клетку конём. Но великого Нибо огорчили, сказав, что такую задачу уже давно придумали. Инопланетянин не сдался и придумал новую задачу. Теперь в его задаче были конь и пешка туда-сюда, а шахматная доска превратилась в шаманскую. Шаманская доска состоит из N × N клеток. В шаманской доске есть три вида клеток: клетки, в которых фигура превращается в коня, клетки, в которых фигура превращается в пешку туда-сюда, и клетки, в которые нельзя ходить. Задаются координаты начальной клетки и конечной клетки. Необходимо за минимальное количество ходов пройти из начальной клетки в конечную. Гарантируется, что начальная и конечная клетки не являются клетками, в которые нельзя ходить. На рисунке изображено, как ходят конь и пешка туда-сюда.

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

В первой строке записано число N (1 ≤ N ≤ 100) — размеры доски. В следующих N строках записано по N символов – сама доска.

Клетки доски делятся на 3 типа:

  • «h» — фигура превращается в коня.
  • «p» — фигура превращается в пешку туда-сюда.
  • «x» — в эту клетку ходить нельзя.

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

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

В единственной строке выведите число – минимальное количество шагов для достижения цели. Если добраться до конечной клетки нельзя, то выведите «–1» без кавычек.

Пример
Входные данные
3
phx
pxx
hhh
2 1
3 3
Выходные данные
3

I. Переполох в НИИЧАВО
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Однажды одному известному программисту из Научно-Исследовательского Института Чародейства и Волшебства Александру Привалову стало скучно, и он решил устроить переполох. Александр не смог придумать ничего лучше, чем решить какую-нибудь нерешённую проблему из книги Януса Полуэктовича Невструева «Уравнения математической магии». В качестве проблемы он решил изучить свойства следующей функции: f(a) = 1a·2a - 1·3a - 2·...·(a - 1)2·a1, при этом f(0) = 1. Для этого ему надо найти значения этой функции в нескольких точках по модулю 109 + 7. Помогите Александру устроить переполох.

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

В первой строке входных данных вам дано единственное целое число n (1 ≤ n ≤ 105) — количество запросов. В следующих n строках следуют запросы. Каждый запрос представляет из себя единственное число ai (0 ≤ ai ≤ 105).

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

Выведите n строк, в i-й строчке следует вывести ответ на запрос — значение функции f(ai) по модулю 109 + 7.

Пример
Входные данные
3
3
4
5
Выходные данные
12
288
34560

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

В новом, купленном на заработанные деньги пепелаце Уэфа и Би используются самые передовые технологии. В частности, там введена новая противоугонная система. В ней есть три кнопки, над каждой из кнопок расположен циферблат. Чтобы разблокировать пепелац, нужно $$$n$$$ раз нажать на кнопки, и сделать это не абы как, а в определенном порядке, при этом на циферблате, расположенном над кнопкой, в момент ее нажатия должно быть определенное число. Изначально все циферблаты над кнопками установлены в положение $$$1$$$. Поскольку время – чатлы, Уэф и Би хотят знать, за какое минимальное время можно разблокировать пепелац. За одну секунду можно успеть сделать с каждой из трёх пар «кнопка-циферблат» одно из действий:

  1. нажать на кнопку,
  2. увеличить значение циферблата над кнопкой на $$$1$$$,
  3. уменьшить значение циферблата над кнопкой на $$$1$$$,
  4. ничего не изменять.

При этом за одну секунду действие номер $$$1$$$ можно провести только с одной парой из трех.

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

В первой строке содержится число $$$n$$$ ($$$0 \lt n \le 1000$$$) – количество нажатий на кнопки, необходимое для того, чтобы разблокировать пепелац.

В следующих $$$n$$$ строках через пробел записаны два числа: первое – номер очередной кнопки, которую нужно нажать (кнопки имеют номера от $$$1$$$ до $$$3$$$), второе – число, которое должно быть на циферблате в момент нажатия соответствующей кнопки. Все значения циферблатов во входных данных – целые положительные числа, не превосходящие $$$1000$$$.

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

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

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

Ответ $$$4$$$ получается следующим образом:

  1. В первую секунду каждый из циферблатов переводится в позицию $$$2$$$
  2. Во вторую секунду нажимается первая кнопка
  3. В третью секунду нажимается вторая кнопка, третий циферблат переводится в позицию $$$3$$$ (то есть одновременно можно нажать на кнопку и поменять положение одного из циферблатов, но не две кнопки сразу)
  4. В четвертую секунду нажимается третья кнопка

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

Профессор Р. сделал прорыв в теории чисел – он открыл пятьпростые числа! Пятьпростым числом называют число, каждые 5 подряд идущих цифр которого образуют простое число. Так как Р. – не только ученый, но ещё и программист, он решил написать программу генерации n-значного пятьпростого числа, и у него это получилось! Получится ли это у вас?

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

В единственной строке содержится число N (5 ≤ N ≤ 105) – длина пятьпростого числа, которое нужно получить.

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

В единственной строке выведите пятьпростое число длины N.

Пример
Входные данные
10
Выходные данные
2246919391

L. Вишневый вопрос
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

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

Более подробно: в её саду растет N вишневых деревьев. Про каждое дерево известно: ai — день, когда оно начинает расцветать, утром этого дня на нем появляется ki цветков, каждое следующее утро их число увеличивается на ki до bi дня включительно. Далее на i-м дереве увядает ki цветков каждый день, начиная с вечера bi дня.

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

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

В первой строке входных данных находится единственное N (1 ≤ N ≤ 105)  — количество деревьев. Далее в i + 1 строке находится информация об i-м дереве: числа ai, bi и ki (1 ≤ ai ≤ bi ≤ 109, 1 ≤ ki ≤ 109).

Гарантируется, что ответ помещается в 64-битный тип данных.

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

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

Пример
Входные данные
3
1 9 1
20 24 2
35 36 5
Выходные данные
24
Примечание

Утром 9-го дня суммарное число цветков будет равно 9.

Утром 24-го дня суммарное число цветков будет равно 10.

Утром 36-го дня суммарное число цветков будет равно 10.

Максимальное число цветков на деревьях – 10, первый раз такое количество будет в 24-й день.