Окружная олимпиада(18 задач)
Региональный этап(109 задач)
Заключительный этап(97 задач)
Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: a, e, i, o, u, y. Остальные буквы являются согласными.
Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова abba, mama, program — благозвучные, а слова aaa, school, search — неблагозвучные.
Вводится слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным.
Вводится слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов.
Выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным.
Комментарии к примерам тестов
1. Слово уже является благозвучным.
2. Достаточно добавить одну гласную букву, например, между буквами s и с
program
0
school
1
Саша – страстный любитель компьютерных игр. Недавно он купил новейшую игру «Математическое казино». В этом казино играют на виртуальные деньги – мани, а каждый раунд игры состоит в решении интереснейшей задачи по математике. Перед началом игры у Саши ноль мани на счету, но программа в любой момент предоставляет ему неограниченный кредит.
Перед началом каждого раунда программа сообщает, на какую тему будет очередная математическая задача и Саша делает ставку на то, что он ее решит. В самом начале игры Саша всегда делает ставку в 1 мани. Если Саша решает задачу правильно, то он выигрывает раунд и ставка плюсуется к его счету. Если он допускает ошибку в решении, то он проигрывает, и ставка вычитается из его счета. Саша очень самоуверенный и любое неверное решение задачи считает чистой случайностью, поэтому после проигрыша Саша всегда увеличивает ставку в 2 раза. Однако после выигрыша, дабы не вспугнуть удачу, Саша всегда снижает ставку до 1 мани. Наконец, одолев очередную задачу, и выиграв этот раунд, Саша решает закончить игру.
Например, пусть Саша правильно решил первую задачу (выиграл начальную ставку в 1 мани, поставил на следующий раунд 1 мани), затем неправильно решил вторую задачу (проиграл 1 мани и удвоил ставку), неправильно решил и третью задачу (проиграл 2 мани и снова удвоил ставку), но четвертую задачку ему все-таки удалось решить правильно (выиграл 4 мани, сбросил ставку на 1 мани). Затем он правильно решает и пятую задачу (выиграл 1 мани) и заканчивает игру. Итого на его счету после игры: 1 – 1 – 2 + 4 + 1 = 3 мани.
Требуется написать программу, которая по имеющейся записи хронологии игры определяет, какое количество мани выиграл или проиграл Саша.
Первая строка содержит целое число N (0 < N ≤ 2000) — количество задач, которое решал Саша. Во второй строке располагаются N чисел 0 или 1 через пробел: 0, если Саша решил очередную задачку неправильно, и 1 – если правильно.
Выведите одно целое число — выигрыш или проигрыш Саши (выигрыш определяется положительным числом, а проигрыш – отрицательным).
5 1 1 0 1 1
4
На контрольной работе N учеников сидят в ряд. Для каждого ученика известно, какую оценку он получил бы, если бы писал эту контрольную самостоятельно (оценка — это число от 2 до 5). Однако ученики могут писать контрольную не только самостоятельно, но и списывать у своего соседа, но только если сосед пишет контрольную самостоятельно. В этом случае списывающий получит такую же оценку, какую получит тот, у кого он списал.
А именно (правила применяются строго в указанном порядке):
Определите, кто какую оценку в итоге получит.
Вводится число N (1<=N<=10) - количество учеников, и далее последовательность из N чисел, описывающая, кто на какую оценку может написать контрольную, если будет писать самостоятельно.
Выведите N чисел - оценки, которые получат ученики за контрольную.
1. Первый и пятый ученики будут писать самостоятельно. Второй спишет у первого, а четвертый — у пятого (в итоге также получат пятерки). Третьему не у кого списывать, так как его соседи будут писать работу не самостоятельно.
2. Второй и четвертый спишут у третьего, пятый — у шестого.
5 5 2 3 4 5
5 5 3 5 5
6 2 2 3 2 2 4
2 3 3 3 4 4
Рассмотрим последовательности чисел. Первая последовательность состоит из одного числа K. Каждая следующая последовательность чисел описывает предыдущую по такому правилу.
Просматриваем описываемую последовательность слева направо и разбиваем на отрезки, состоящие из подряд идущих равных чисел (причем все идущие подряд одинаковые числа всегда объединяем в один отрезок). Далее каждый такой отрезок описываем двумя числами — первое число говорит, сколько раз повторяется одно и то же число, второе число говорит, какое именно число повторяется. Записываем эти пары последовательно в соответствии с отрезками слева направо, и получаем новую последовательность (см. примеры ниже).
Например, для K=2 последовательности получатся такими:
№ | Последовательность | Как ее читать (слова в описании соответствуют числам текущей последовательности слева направо, и описывают предыдущую последовательность) |
1 | 2 | Исходная последовательность |
2 | 1 2 | Одна «двойка» |
3 | 1 1 1 2 | Одна «единица», одна «двойка» |
4 | 3 1 1 2 | Три «единицы», одна «двойка» |
5 | 1 3 2 1 1 2 | Одна «тройка», две «единицы», одна «двойка» |
6 | 1 1 1 3 1 2 2 1 1 2 | Одна «единица», одна «тройка», одна «двойка», две «единицы», одна «двойка» |
Напишите программу, которая по исходному числу K напечатает N-ую получающуюся последовательность.
Вводится число K (1 ≤ K ≤ 9) и число N (1 ≤ N ≤ 15).
Ваша программа должна печатать N-ую последовательность, полученную из начальной последовательности, состоящей из одного числа K. Числа при выводе следует разделять пробелами.
2 6
1 1 1 3 1 2 2 1 1 2
2 1
2
1 3
2 1
Сегодня мальчик Саша на уроке математики узнал про фракталы. Учитель показывал так называемую «кривую дракона». Она представляет собой геометрическую фигуру, которая строится следующим образом: на первом шаге проводится отрезок из начала координатной плоскости в точку (0; 1). Далее на каждом шаге из конца фрактала повторяется уже нарисованная часть фигуры, повернутая на 90 градусов против часовой стрелки (см. рисунок).
После уроков Саша попробовал сам изобразить «кривую дракона», и теперь он хочет знать, в какой точке координатной плоскости он закончил рисовать фрактал, проделав описанные выше N шагов. Требуется написать программу, которая по заданному числу N определяет координаты конца фрактала после выполнения N шагов.
Вводится одно целое число N (1 ≤ N ≤ 30).
Выведите два числа через пробел — координаты конца фрактала.
2
1 1
4
2 -2