В этом задании нельзя использовать контейнер string
и прочее из C++.
Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: «a», «e», «i», «o», «u», «y». Остальные буквы являются согласными.
Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова «aboba», «mama», «program» — благозвучные, а слова «aaa», «school», «search» — неблагозвучные.
Дано слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным.
Программа получает на вход слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов.
Выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным.
Ввод | Вывод |
---|---|
program |
0 |
school |
1 |
Дано натуральное число. Разделите точками цифры этого числа группами по три, начиная справа.
Программа получает на вход натуральное число, содержащее не более 100 цифр.
Программа должна вывести то же число, с точками между некоторыми цифрами этого числа.
Ввод | Вывод |
---|---|
1000 |
1.000 |
12345678 |
12.345.678 |
Пароль называется криптостойким, если выполнены 4 критерия:
Требуется по данному паролю определить, сколько критериев криптостойкости выполнено.
Вводится одна строка, состоящая только из латинских букв и цифр. Количество символов в строке не превышает 100.
Выведите количество критериев криптостойкости, которым удовлетворяет пароль.
Ввод | Вывод |
---|---|
1aA |
3 |
AaBbCc12 |
4 |
AAAaaaAAA |
3 |
В Российской Федерации на разных видах транспортных средств устанавливаются разные по формату регистрационные знаки («автомобильные номера»). Вот пример нескольких возможных форматов регистрационных знаков.
№ | Пример | Описание формата | Тип транспортного средства |
---|---|---|---|
1 |
Y019KM |
Буква, три цифры, две буквы |
Частные транспортные средства |
2 |
AB179 |
Две буквы, три цифры |
Общественный транспорт и такси |
3 |
OН2645 |
Две буквы, четыре цифры |
Прицепы |
4 |
0123PC |
Четыре цифры, две буквы |
Мотоциклы |
В этой задаче «буквой» может быть любая заглавная буква латинского алфавита.
Напишите программу, которые по регистрационному знаку определяет его тип или определяет, что регистрационный знак некорректен.
Программа получает на вход три строки текста, каждая строка содержит один образец регистрационного знака (возможно, некорректный). Каждый образец содержит от 1 до 10 символов, являющихся цифрами и заглавными латинскими буквами (других символов во входных данных быть не может).
Программа должна вывести для каждого образца число, соответствующее типу транспортного средства, как в приведенной таблице, то есть 1 — для частных транспортных средств, 2 — для общественного транспорта, 3 — для прицепов, 4 — для мотоциклов. Если номерной знак некорректен (не подходит ни к одному из указанных типов), то необходимо вывести число 0. Каждое число необходимо выводить в отдельной строке.
Ввод | Вывод |
---|---|
Y019KM |
1 |
Будем рассматривать только строки, состоящие из заглавных латинских букв. Например, рассмотрим строку AAAABCCCCCDDDD. Длина этой строки равна 14. Поскольку строка состоит только из латинских букв, повторяющиеся символы могут быть удалены и заменены числами, определяющими количество повторений. Таким образом, данная строка может быть представлена как 4AB5C4D. Длина такой строки 7. Описанный метод мы назовем упаковкой строки.
Напишите программу, которая берет упакованную строку и восстанавливает по ней исходную строку.
Программа получает на вход одну упакованную строку. В строке могут встречаться только конструкции вида \(nA\), где \(n\) — количество повторений символа (целое число от 1 до 1000), а \(A\) — заглавная латинская буква, либо конструкции вида \(A\), то есть символ без числа, определяющего количество повторений. Максимальная длина строки не превышает 80.
Выведите восстановленную строку.
Ввод | Вывод |
---|---|
3A4B7D |
AAABBBBDDDDDDD |
22D7AC18FGD |
DDDDDDDDDDDDDDDDDDDDDDAAAAAAACFFFFFFFFFFFFFFFFFFGD |
Дано число. В этом числе необходимо изменить одну цифру таким образом, чтобы новое число делилось на 3 и было бы максимально возможным. В исходном числе нужно обязательно изменить одну цифру, даже если исходное число уже делилось на 3.
Программа получает на вход одно длинное натуральное число. Длина числа может достигать 100 цифр.
Программа должна вывести другое натуральное число, удовлетворяющее условиям:
Ввод | Вывод |
---|---|
123 |
723 |
Телефонные номера в адресной книге мобильного телефона имеют один из следующих форматов:
+7<код><номер> 8<код><номер> <номер>где
<номер>
— это семь цифр,
а <код>
— это три цифры или три цифры в круглых скобках. Если код не указан, то считается, что
он равен 495. Кроме того, в записи телефонного номера может стоять знак «-» между любыми двумя цифрами (см. пример).
На данный момент в адресной книге телефона Васи записано всего три телефонных номера, и он хочет записать туда еще один. Но он не может понять, не записан ли уже такой номер в телефонной книге. Помогите ему!
Два телефонных номера совпадают, если у них равны коды и равны номера. Например,
+7(916)0123456
и 89160123456
— это один и тот же номер.
В первой строке входных данных записан номер телефона, который Вася хочет добавить в адресную книгу своего телефона. В следующих трех строках записаны три номера телефонов, которые уже находятся в адресной книге телефона Васи. Гарантируется, что каждая из записей соответствует одному из трех приведенных в условии форматов.
Для каждого телефонного номера в адресной книге выведите YES
(заглавными буквами), если он совпадает с тем телефонным номером,
который Вася хочет добавить в адресную книгу или NO
(заглавными буквами) в противном случае.
Ввод | Вывод |
---|---|
8(495)430-23-97 |
YES |
Миша готовится к ЕГЭ по информатике. Сейчас он изучает задачу, в которой описывается работа с масками файлов.
Для групповых операций с файлами используются маски имён файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которой также могут встречаться следующие символы.
Символ «?» (вопросительный знак) означает ровно один произвольный символ.
Символ «*» (звёздочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.
Напишите программу, которая для каждого имени файла определит, подходит ли оно под заданную маску, чтобы Миша мог сверить свои ответы. Гарантируется, что в маске файла присутствует не более одного символа «*».
В первой строке содержится маска файла. В следующих 5 строках содержатся имена файлов по одному в строке. Имена файлов состоят из маленьких латинских букв, цифр и символа «.» (точка), в маске также могут содержаться символы «?» и «*» (символ «*» — не более одного раза). Длина каждой строки не превосходит 20 символов.
Для каждого имени файла выведите слово «YES» если оно удовлетворяет маске и «NO» иначе. Выводить слова следует большими латинскими буквами без кавычек, каждое в новой строке.
Ввод | Вывод |
---|---|
?or*.d?? |
YES |