Условие задачи | | Прогресс |
Темы:
Строки
Для кодирования сообщения используют следующие действия: сообщение записывают, опуская пробелы, в прямоугольник заданной высоты по столбцам, а затем прочитывают строки в заданном порядке.
1 P R I
2 R A N
3 O M G
4 G M
а затем, если выбрать порядок строк 3, 1, 2, 4, получают закодированное сообщение OMGPRIRANGM.
Требуется написать программу, которая по заданным высоте прямоугольника и порядке прочтения строк при кодировке декодирует заданное сообщение.
Входные данные
Входные данные содержат: в первой строке высоту прямоугольника H (2 ≤ H ≤ 10), во второй – порядок прочтения строк (числа записаны через пробел), в третьей – закодированное сообщение, длина которого составляет от 1 до 200 символов. Закодированное сообщение состоит из заглавных и строчных латинских букв и цифр.
Выходные данные
В выходные данные записывается декодированное сообщение.
Ввод |
Вывод |
4
3 1 2 4
OMGPRIRANGM |
PROGRAMMING |
| |
|
Темы:
Строки
Напишите программу, которая выводит строчку.
[:|/||\|:]
| |
|
Темы:
Строки
Напишите программу, которая выводит строчку.
\\||//\\||//||\\||//
| |
|
Темы:
Строки
Напишите программу, которая выводит строчку.
(:)]-/\-\/
| |
|
Темы:
Строки
Напишите программу, которая выводит строчку.
(-["|-|-|"]-)
| |
|
Темы:
Строки
Напишите программу, которая выводит строчку.
<@(/\/\)><
| |
|
ID 33533.
Клад
Темы:
Циклы
Строки
Путь к кладу задан в виде указаний, какое количество шагов нужно пройти в одном из четырёх направлений: север (N), юг (S), запад (W), восток (E). Весь маршрут записан в виде строки, содержащей последовательность из чисел и следующих за числами букв, указывающих направление перемещения. Например, строка «7N5E2S3E» означает "пройти 7 шагов на север, 5 шагов на восток, 2 шага на юг, 3 шага на восток». В маршруте может быть много команд перемещения, поэтому каждый такой маршрут можно сократить.
Например, ранее приведённый маршрут можно сократить до «5N8E". По данному маршруту до клада сократите его до строки минимальной длины.
Программа получает на вход строку, состоящую из целых неотрицательных чисел, не превосходящих 107 каждое, и одной буквы (N, S, W, E ) следующей за каждым
числом. Других символов (в том числе пробелов), кроме цифр и букв направлений, в строке нет. Длина строки не превосходит 250 символов. Гарантируется, что начальная
и конечная точки маршрута различаются.
Программа должна вывести маршрут, ведущий в ту же точку, записанный в таком же виде, как во входных данных, используя минимальное число символов. Если ответов
несколько, программа должна вывести один (любой) из них.
Ввод |
Вывод |
Примечание |
7N5E2S3E |
5N8E |
Правильным ответом будет также «8E5N» |
10N30W20N |
30N30W |
Правильным ответом будет также «30W30N» |
| |
|
Темы:
Строки
Напишите программу, которая рисует картинку размером 11х7 символов.
(
\
)
##-------->
)
/
(
| |
|
Темы:
Строки
Напишите программу, которая рисует картинку размером 7х5 символов.
/_\
{~._.~}
( Y )
()~*~()
(/)-(\)
| |
|
Темы:
Строки
Напишите программу, которая рисует картинку размером 13х4 символов.
_ _ ;;
.~.~~;;;;;;;
\_/-\|----\\
' "" ""
| |
|
Темы:
Строки
В первой строке входных данных записано число N (от 1 до 100).
В каждой из последующих N строк записано сначала некоторое целое число (из диапазона от 0 до 10000), затем пробел, и затем некоторый текст (не более 20 символов).
Требуется вывести информацию в том же формате, увеличив число в каждой строке (кроме первой, где записано число N ) на 1.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2
14 Start
42 Stop
|
2
15 Start
43 Stop
|
| |
|
Темы:
Строки
Ввести имя, отчество и фамилию. Преобразовать их к формату «инициалы-фамилия».
Входные данные: в первой строке задается предложение. Слова разделены одном пробелом, вначале и в конце текста лишних пробелов нет.
Выходные данные: необходимо вывести модифицированную строку.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Inav Ivanovich Ivanov |
I. I. Ivanov |
| |
|
Темы:
Строки
Найти в строке указанную подстроку и заменить ее на новую. Строка s , ее подстрока s1 для замены и новая подстрока s2 вводятся.
P.S. Искомые подстроки в исходной строке не пересекаются.
P.P.S. В строках не содержатся пробелы.
P.P.P.S. Искомая подстрока может встречаться неоднократно.
P.P.P.P.S. Все буквы строчные.
P.P.P.P.P.S. Нет символов помимо строчных латинских букв.
На вход подаются 3 строки: s , s1 , s2 . Длина всех строк не превосходит 100.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
abcde
ab
fg |
fgcde |
2 |
ababc
ab
c
|
ccc |
| |
|
Темы:
Строки
Задана строка, состоящая только из:
• прописных и строчных букв английского алфавита;
• символов подчёркивания (они используются в качестве разделителей);
• круглых скобок (как открывающих, так и закрывающих).
Гарантируется, что каждая открывающая скобка имеет парную закрывающую, идущую следом. Аналогично, каждая закрывающая скобка имеет парную открывающую, которая расположена до неё. Для каждой пары соответствующих скобок верно, что между ними нет каких-либо других скобок. Иными словами, каждая скобка в строке входит в пару «открывающая-закрывающая», и такие пары не вкладываются друг в друга.
Например, допустимой строкой является: _Hello_Vasya(and_Petya)__bye_(and_OK)
Словом называется нерасширяемая последовательность подряд идущих букв, то есть последовательность букв, где слева и справа от неё находится скобка или символ подчёркивания, или соответствующий символ отсутствует.
Приведенный пример содержит семь слов: «Hello», «Vasya», «and», «Petya», «bye», «and» и «OK».
Напишите программу, которая найдет:
• длину самого длинного слова вне скобок (выведите 0, если слов вне скобок нет),
• количество слов внутри скобок (выведите 0, если слов внутри скобок нет).
Входные данные: в первой строке записано целое число n (\(1 <= n <= 255\)) — длина заданной строки. Во второй строке записана строка, состоящая только из строчных и прописных английских букв, открывающих и закрывающих скобок, а также символов подчёркивания.
Выходные данные: выведите два числа:
• длину самого длинного слова вне скобок (выведите 0, если слов вне скобок нет);
• количество слов внутри скобок (выведите 0, если слов внутри скобок нет).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
37
_Hello_Vasya(and_Petya)__bye_(and_OK) |
5 4 |
2 |
37
_a_(_b___c)__de_f(g_)__h__i(j_k_l)m__
|
2 6 |
3 |
27
(LoooonG)__shOrt__(LoooonG)
|
5 2 |
4 |
5
(___)
|
0 0 |
Примечание
В первом примере слова «Hello», «Vasya» и «bye» записаны вне скобок, а слова «and», «Petya», «and» и «OK» — внутри. Обратите внимание, что слово «and» встречается дважды, и учитывать в ответе его тоже следует два раза.
| |
|
Темы:
Строки
Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Необходимо по заданной шифровке определить исходный текст.
Входные данные: в первой строке дана шифровка, состоящая из заглавных латинских букв. Во второй строке число K (\(1 <= K <= 10\)).
Выходные данные: требуется вывести результат расшифровки.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
XPSE
1 |
WORD |
2 |
ZABC
3 |
WXYZ |
| |
|
Темы:
Строки
В первой строке входных данных записано арифметическое выражение в виде:
<число> <операция> <число> =
<Число> - это натуральное число, не превышающее 10000.
<Операция> - один из знаков + , - , * .
В начале строки, в конце строки, а также между числами и знаком операции, числом и символом =, может быть любое число пробелов (а может пробелов и не быть).
Гарантируется, что длина строки не превышает 200 символов.
Выведите результат вычисления выражения.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
154 +3 = |
157 |
| |
|
Темы:
Строки
Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются только знаки «+» или «–» ). На вход подается символьная строка, представляющая собой арифметическое выражение. Все числа целые.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12+3+45 |
60 |
2 |
12-45+3 |
-30 |
| |
|
Темы:
Строки
Напишите программу, которая вычисляет выражение, состоящее из трех чисел, трех знаков арифметических операций (допускаются знаки «+» , «–» , «*» и «/» ) и круглых скобок. На вход подается символьная строка, представляющая собой арифметическое выражение. Все числа - целые. Операция «/» выполняется как целочисленное деление.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2*(3+45)+4 |
100 |
2 |
2*3/(5-2) |
2 |
| |
|
Темы:
Строки
В преддверии Нового Года Вася купил ёлку и решил её украсить. Для этого он должен достать с верхней полки шкафа самые красивые украшения. К сожалению, ставить стул на стул было плохой идеей… Теперь у него вместо коробки украшений – куча, состоящая из украшений, осколков и вещей из других коробок. Конечно же, её нужно разобрать. Но Вася так хочет смотреть новогодние фильмы! Помогите ему написать программу, которая разберёт кучу мусора за него.
Входные данные
На вход подаётся две строки. Первая – примеры украшений. Вторая – собственно куча.
Выходные данные
Нужно вывести количество украшений каждого вида, а также количество разбитых (обозначены точкой) украшений.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
60oQ
484QQQQ.Qhu.6.oodnh...ddh76762..300ojha.
|
6: 3
0: 2
o: 3
Q: 5
Broken: 9
|
2 |
80
..7.8.7.8.9.8
|
8: 3
0: 0
Broken: 7
|
| |
|
Темы:
Строки
Гай Юлий Цезарь (13 июля, или из других источников, 12 июля 100 или 102 гг. до н. э. — 15 марта 44 г. до н. э.) — древнеримский государственный и политический деятель, диктатор, полководец, писатель. Своим завоеванием Галлии Цезарь расширил Римскую державу. Деятельность Цезаря коренным образом изменила культурный и политический облик Западной Европы и оставила неизгладимый след в жизни следующих поколений европейцев. Гай Юлий Цезарь, обладая блестящими способностями военного стратега и тактика, одержал победу в сражениях гражданской войны и стал единовластным повелителем Pax Romana.
Цезарь часто брал бумагу и писал письма во время гладиаторских боёв. Его спросили, мол, как вы и на гладиаторов можете смотреть и письма писать. На что Цезарь ответил: «Цезарь может делать три дела одновременно: и писать, и смотреть, и слушать».
Юлий Цезарь, чтобы скрыть информацию от врагов, использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу.
Используя современные компьютерные технологии, определите по заданной шифровке исходный текст.
Входные данные
В первой строке дана шифровка, состоящая из заглавных латинских букв. Во второй строке число K (\(1 <= K <= 10\)).
Выходные данные
Требуется вывести результат расшифровки.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
XPSE
1 |
WORD |
| |
|
Темы:
Строки
Избрав путь политика и полководца, Цезарь имел немного времени для творческой работы, однако написал сочинения разных жанров: эпическую поэму "Геркулес", трагедию "Царь Эдип", поэму "Путешествие", "Записки о галльской войне" и "Записки о гражданской войне". Были изданы сборники его сентенций, речей, писем. Кроме того, великий полководец интересовался филологией.
Отвлекшись от написания поэмы, Цезарь записал одну под другой две строчки и задумался. Затем он посмотрел на написанные строчки и понял, что первая строка (S ) может содержать в себе несколько раз вторую строку (T ). Гай Юлий Цезарь решил подсчитать все вхождения строки T в строку S . Помогите ему, напишите соответствующую программу.
Входные данные
Первые две строки входных данных содержат строки S и T , соответственно. Длины строк больше 0 и меньше 50000, строки содержат только строчные латинские буквы.
Выходные данные
Выведите номера символов, начиная с которых строка T входит в строку S , в порядке возрастания (по одному значению в строке).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
ababbababa
aba |
0
5
7 |
| |
|
Темы:
Строки
Ученики, посещавшие школы в Древнем Риме решали на занятиях различные задачи. Вот одна из задач:
101=1
8181515=4
1111112=0
8888888=14
1010101=3
7000007=?
Пусть первое число x , а соответствующее ему n .
Напишите программу, которая по числу x определяет n .
Входные данные
Единственное неотрицательное число x , не превышающее 101001.
Выходные данные
Выведите n .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
689 |
4 |
| |
|
Темы:
Строки
Всем известно, что Цезарь пользовался иногда тайнописью, т. е. неким шифром, изобретенным им самим.
Иногда, чтобы сократить время написания, Цезарь использовал упаковку, принцип которой заключается в удалении повторяющихся букв и замены их на числа, определяющих количество повторений.
Будем рассматривать только строчки, состоящие из заглавных латинских букв. Например, рассмотрим строку AAAABCCCCCDDDD . Данная строка может быть представлена как 4AB5C4D .
Напишите программу, которая берет упакованную строчку и восстанавливает по ней исходную строку.
Входные данные
Входные данные содержат одну упакованную строку. В строке могут встречаться только конструкции вида nA , где n — количество повторений символа (целое число от 2 до 99), а A — заглавная латинская буква, либо конструкции вида A , то есть символ без числа, определяющего количество повторений. Максимальная длина строки не превышает 80.
Выходные данные
Выведите восстановленную строку. При этом строка должна быть разбита на строчки длиной ровно по 40 символов (за исключением последней, которая может содержать меньше 40 символов).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
ABC |
ABC |
2 |
O2A3O2AO |
OAAOOOAAO |
3 |
A2B3C4D5E6F7G |
ABBCCCDDDDEEEEEFFFFFFGGGGGGG |
| |
|
Темы:
Строки
Представьте, что вас наняли в IT отдел сетевого продуктового магазина. Со следующего месяца планируется ввести скидку в 20% на некоторые товары. От вас требуется написать программу расчета финальной стоимости покупки с учетом всех скидок.
Покупка задается в виде списка товаров, где каждый товар описывается в формате <НазваниеТовара> <цена> x<количество>. Если название товара заканчивается на подстроку «sale», то цена на товар при финальном расчете покупки уменьшается на 20% с округлением до целого числа в меньшую сторону. Так, например, если цена товара была 12 рублей, с учетом скидки она составит 9 рублей. На остальные товары скидка не распространяется.
Суммарная стоимость каждого товара вычисляется по формуле finalPrice⋅x, где finalPrice - финальная цена, возможно, с учетом скидки и округлением, а x - количество товара в списке покупок.
Ваша задача - вычислить итоговую стоимость покупки.
Входные данные
В первой строке дано число n - число наименований товаров в покупке (1≤n≤1000).
В следующих n строках заданы описания товаров в покупке в формате: <НазваниеТовара> <цена> x<количество>.
Название товара состоит из не более чем 20 строчных латинских букв. Цена - натуральное число, которое строго больше 1, но не больше 1000. Количество - натуральное число не больше 100.
Выходные данные
Выведите одно число - итоговую стоимость покупки.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
5
bananassale 10 x2
breadfixed 5 x5
colafixed 20 x2
gumsale 9 x10
tea 2 x15 |
181 |
В тесте из примера итоговые стоимости товаров составят: 8, 5, 20, 7 и 2 соответственно. Итоговая стоимость покупки: 8⋅2+5⋅5+20⋅2+7⋅10+2⋅15=181. |
| |
|
Темы:
Строки
Представьте, что вас наняли в IT отдел сетевого продуктового магазина. Со следующего месяца планируется ввести скидку в 20% на некоторые товары. От вас требуется написать программу расчета финальной стоимости покупки с учетом всех скидок.
Покупка задается в виде списка товаров, где каждый товар описывается в формате <НазваниеТовара> <цена> x<количество>. Если название товара не заканчивается на подстроку «fixed», то цена на товар при финальном расчете покупки уменьшается на 20% с округлением до целого числа в меньшую сторону. Так, например, если цена товара была 12 рублей, с учетом скидки она составит 9 рублей. На товары, название которых заканчивается на подстроку «fixed», скидка не распространяется.
Суммарная стоимость каждого товара вычисляется по формуле finalPrice⋅x, где finalPrice - финальная цена, возможно, с учетом скидки и округлением, а x - количество товара в списке покупок.
Ваша задача - вычислить итоговую стоимость покупки.
Входные данные
В первой строке дано число n - число наименований товаров в покупке (1≤n≤1000).
В следующих n строках заданы описания товаров в покупке в формате: <НазваниеТовара> <цена> x<количество>.
Название товара состоит из не более чем 20 строчных латинских букв. Цена - натуральное число, которое строго больше 1, но не больше 1000. Количество - натуральное число не больше 100.
Выходные данные
Выведите одно число - итоговую стоимость покупки.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
5
bananassale 10 x2
breadfixed 5 x5
colafixed 20 x2
gumsale 9 x10
tea 2 x15 |
166 |
В тесте из примера итоговые стоимости товаров составят: 8, 5, 20, 7 и 1 соответственно.
Итоговая стоимость покупки: 8⋅2+5⋅5+20⋅2+7⋅10+1⋅15=166$. |
| |
|
Темы:
Строки
На вход программы поступает строка текста, в которой могут встречаться:
— прописные и строчные (т.е. большие и маленькие) латинские буквы;
— пробелы;
— знаки препинания: точка, запятая, восклицательный и вопросительный знак;
— символ –, обозначающий в некоторых случаях тире, а в некоторых — дефис.
Слово — это последовательность подряд идущих латинских букв и знаков дефис, ограниченная с обоих концов. В качестве ограничителей могут выступать начало строки, конец строки, пробел, знак препинания, тире. Тире отличается от дефиса тем, что слева и справа от знака дефис пишутся буквы, а хотя бы с одной стороны от тире идет либо начало строки, либо конец строки, либо пробел, либо какой-либо знак препинания, либо еще одно тире.
Напишите программу, определяющую, сколько слов в данной строке текста.
Входные данные
Вводится строка длиной не более 200 символов.
Выходные данные
Выведите одно число — количество слов, которые содержатся в исходной строке.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Hello , world! |
2 |
2 |
www.olympiads.ru |
3 |
3 |
Gyro-compass - this is a ... |
4 |
| |
|
Темы:
Строки
Возьмем произвольное слово и проделаем с ним следующую операцию: поменяем местами его первую согласную букву с последней согласной буквой, вторую согласную букву с предпоследней согласной буквой и т.д. Если после этой операции мы вновь получим исходное слово, то будем называть такое слово негласным палиндромом. Например, слова sos, rare, rotor, gong, karaoke являются негласными палиндромами.
Вам требуется написать программу, которая по данному слову определяет, является ли оно негласным палиндромом.
Входные данные
Вводится одно слово.
Выходные данные
Программа должна вывести YES, если введенное слово является негласным палиндромом, и NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
tennete |
YES |
| |
|
Темы:
Цикл for
Условный оператор
Строки
Вводится натуральное число. Требуется разделить запятыми тройки его цифр (считая справа).
Входные данные
Вводится одно натуральное число, не превышающее 10100.
Выходные данные
Вывести то же число, разделяя тройки цифр запятыми.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1000 |
1,000 |
2 |
12345678 |
12,345,678 |
3 |
999 |
999 |
| |
|
Темы:
Строки
Двое играют в такую игру. Первый называет число, затем второй называет число. Если число второго больше, то он выиграл, в противном случае (даже если числа равны), выиграл первый. Помогите второму игроку – напишите программу, которая будет за него успешно играть в эту игру.
Входные данные
Вводится натуральное число A, которое назвал первый игрок (в числе А не больше 100 цифр).
Выходные данные
Выведите одно натуральное число – какой-нибудь (любой!) выигрышный ход второго игрока.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 |
2 |
2 |
1000000000000000 |
1000000000000009 |
| |
|
Темы:
Строки
Дети решили поиграть в догонялки, и, чтобы выбрать водящего, встали в круг и стали считаться. Для этого они использовали считалочку. Показывая пальцем по очереди на каждого стоящего в кругу, считающий произносит одно слово, и тот, на кого придется последнее слово, и будет водить. Требуется по данной считалочке определить, кто же будет водить.
Входные данные
В первой строке вводится считалочка. Она состоит из слов, записанных латинскими буквами. Слова разделены одним пробелом. Знаков препинания нет, строка начинается и заканчивается буквой. В считалочке не менее двух слов, а длина строки не превосходит 100.
Во второй строке в том же формате вводится список имен школьников в том порядке, в котором они стоят по кругу. Считать начинают с первого школьника. Детей не менее двух, а длина строки не превосходит 100.
Выходные данные
Выведите имя школьника, которому предстоит водить.
№ |
Входные данные |
Выходные данные |
1 |
To be or not to be
John Mary Ann Kate |
Mary |
2 |
Na zolotom kryltse sideli
Vasya Vasya Vasya |
Vasya |
| |
|
Темы:
Строки
Вы когда-нибудь задумывались над тем, как отличить хорошие стихи от посредственных?
Нет? А вот редактор литературного журнала занимается этим каждый день, получая тонны корреспонденции от молодых авторов, желающих стать известными поэтами. Благо, в последнее время большая часть стихов присылается по электронной почте, поэтому у редактора возникла мысль автоматизировать процесс. Он твердо уверен, что стихи тем лучше, чем точнее в них рифма. Он считает две строки зарифмованными, если у них совпадает несколько последних букв. И чем больше букв совпадает, тем лучше зарифмованы строки. Например, у строк “палка” и “веревка” совпадают только пары последних букв “ка”, а у строк “олимпиада” и “рая и ада” совпадают четыре буквы (пробелы мы пропускаем). Поэтому вторая рифма лучше. Редактор считает, что в четверостишии (четыре строки) первая строка должна рифмоваться с третьей, а вторая – с четвертой. Для каждой из этих двух пар строк он считает количество совпадающих последних символов и из этих двух чисел выбирает наибольшее. Полученное число он называет коэффициентом качества стихотворения – чем он выше, тем больше шансов у стихотворения быть опубликованным. Помогите редактору – напишите программу, которая определяет качество стихотворения. И кто знает, может быть, благодаря вашим усилиям, мир познакомится с гениальными стихами (см. первый пример).
Входные данные
На вход подается 4 непустые строки, каждая из которых состоит из не более чем 100 строчных латинских букв (стихотворение уже подверглось предварительной обработке: из него удалили все пробелы и знаки препинания, а заглавные буквы сделали строчными).
Выходные данные
Выведите одно число – коэффициент качества стихотворения.
№ |
Входные данные |
Выходные данные |
1 |
yapomnyuchudnoemgnovenje
peredomnojyavilasty
kakmimoletnoevidenje
kakgenijchistoykrasoty |
4 |
2 |
eto
vovse
ne
stihi |
0 |
3 |
etootlichnyestihi
etootlichnyestihi
etootlichnyestihi
etootlichnyestihi |
17 |
| |
|
Темы:
Строки
Перебор
По кругу записано несколько букв (возможно, повторяющихся). Петя интересуется, сможет ли он прочитать некоторое слово, если будет двигаться по кругу (в каком-либо направлении), не пропуская буквы (откуда начинать, и в какую сторону двигаться, он может выбрать сам).
Входные данные
В первой строке записаны строчные латинские буквы в том порядке, в котором они расставлены по кругу по часовой стрелке. Буквы записаны без пробелов, их количество не меньше 1 и не больше 100.
Во второй строке записано слово, которое хочет найти Петя. Оно также состоит из строчных латинских букв и имеет длину от 1 до 100.
Выходные данные
Выведите YES заглавными латинскими буквами, если такое слово можно прочитать, двигаясь по кругу, и NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
abcdefg
abd |
NO |
2 |
abcdg
bag |
YES |
3 |
a
aaa |
YES |
| |
|
Темы:
Строки
Дано алгебраическое выражение, состоящее из натуральных чисел, переменных (a, b, c, ..., z) записанных строчной латинской буквой, знаков арифметических операций + , - , * (умножение) и * * (возведение в степень). При этом если после числа идет переменная, то знак умножения может быть пропущен.
Требуется подсчитать, сколько в данном выражении умножений и сколько возведений в степень.
Входные данные
Ввдится строка, состоящая не более чем из 200 символов, и не менее, чем из одного символа. Она представляет собой корректное алгебраическое выражение.
Выходные данные
Выведите два числа через пробел: количество умножений и количество возведений в степень.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2x+5 |
1 0 |
2 |
x**y**2z*3*5 |
3 2 |
| |
|
Темы:
Строки
Алиса и Боб — очень опытные шпионы. Лучше всего им удается находить пароли для доступа к различным секретным данным. Вот и в этот раз Алиса получила от Боба сообщение, в котором говорилось, что ключом является число и далее шло само это число. Также Боб писал, что число-ключ должно делиться на 9. Когда Алиса попробовала ввести полученный пароль, то оказалось, что он не подходит. Алиса очень доверяет Бобу, и поэтому она решила, что Боб мог ошибиться только в одной цифре пароля. Поскольку у Алисы не так много времени, она решила не выяснять у Боба правильный ответ, а перебрать все числа, которые могли бы быть паролем, т.е. все такие числа, которые могут быть получены из того числа, которое прислал Боб, заменой ровно одной из его цифр и делятся на 9. За помощью Алиса обратилась к вам. Напишите программу, которая предложит Алисе все возможные варианты пароля.
Входные данные
Во входных данных содержится единственное число P (1 ≤ P ≤ 109) — то число, которая Алиса получила в сообщении от Боба. Гарантируется, что оно не начинается с нуля.
Выходные данные
Выведите в столбик все возможные варианты паролей, которые нужно перебрать Алисе, в произвольном порядке. Ни одно из полученных вами чисел не должно начинаться с нуля. Все возможные варианты паролей должны содержать столько же цифр, сколько и исходное число, полученное Алисой.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
256 |
756
216
252 |
| |
|
Темы:
Строки
Цикл while
Артур всегда очень боялся знакомиться с девушками. Дело даже не в природной стеснительности Артура, и даже не столько в том, что Артур не знает, о чем говорить с девушками. Просто Артур с детства не выговаривает букву «р» и очень этого стесняется. Поэтому Артур старается не произносить лишний раз слова, в которых есть эта ненавистная ему буква.
Однажды друзья познакомили Артура с девушкой по имени Нина (о, какое прекрасное имя!). Она была очаровательна и очень болтлива, поэтому Артуру почти не нужно было подбирать слова — она заполняла неловкую тишину за него. Разумеется, он пригласил ее в кафе выпить чашечку кофе. Артур даже продумал все свои реплики заранее: «Счастлив тебя видеть», «Ты сегодня восхитительна», «Да, конечно, я внимательно тебя слушаю», «И что дальше?», «Счет, пожалуйста» и, конечно, «Я позвоню тебе на днях, не скучай».
Но, как известно, не бывает идеальных планов. Все шло как по маслу, но вдруг, сидя за столиком в кафе, Нина сказала, что ужасно не выспалась и не отказалась бы от N чашек кофе. И тут Артур понял, что он не обдумал заранее, как он будет делать заказ. Понятно, что нужно сказать что-то вроде: «Сколько-то чашек кофе, пожалуйста», но вот сколько же чашек нужно, чтобы Нина так и не поняла, что Артур не выговаривает букву «р»? Явно нужно заказать не меньше, чем N + 1 чашку — чтобы и Нине досталось N чашек, и самому выпить, но вот сколько точно — Артур не знает. Денег у него не слишком много, поэтому заказывать больше, чем жизненно необходимо для того, чтобы избежать разоблачения, Артур не хочет.
Помогите Артуру — посчитайте, сколько чашек кофе он должен заказать.
Входные данные
Вводится одно целое число N (1 ≤ N ≤ 2999).
Выходные данные
Выведите одно число — количество чашек кофе, которое должен заказать Артур.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 |
2 |
2 |
12 |
15 |
| |
|
Темы:
Строки
Когда Дядя Фёдор уехал домой в город, следить за хозяйством остались Матроскин и Шарик. Но поскольку Дядю Фёдора очень волновали дела в Простоквашино, они договорились, что каждую неделю Матроскин будет писать письмо с отчетом о делах. Довольно скоро Матроскин понял, что письма идут слишком долго, поэтому решил отправлять телеграммы. Обычно отчеты очень длинные, поэтому Матроскину пришлось отправлять несколько телеграмм. Чтобы Дяде Фёдору было удобнее разобраться в пришедших телеграммах, Матроскин следует следущим правилам:
В каждой телеграмме должно быть не более 140 символов, включая пробелы и знаки препинания.
Исходный текст должен быть разбит на телеграммы по пробелам, при этом пробел, по которому разбивается телеграмма, уничтожается.
Если телеграмма не является последней, в её конец нужно дописать три точки.
Если телеграмма не является первой, в её начало нужно дописать три точки.
Чтобы сэкономить деньги на отправке телеграмм, Матроскин хочет разбить текст на как можно меньшее количество.
Помогите Матроскину разбить исходный текст на как можно меньшее количество телеграмм по приведенным выше правилам.
Входные данные
На вход подается строка из маленьких латинских букв и пробелов. Она не начинается и не заканчивается пробелами и никакие два пробела в ней не идут подряд. Длина строки не превышает 10000.
Выходные данные
В первой строке выведите число N – количество телеграмм, на которое надо разбить исходную строку. В следующих N строках выведите сами телеграммы. Если текст передать заданным способом невозможно, выведите −1.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
deesecnj vmguhee xhled rrr dfjhj fdytiaf baulvovt kvhygzhv wfaocftf scugmcqsk wadi bjeiq coesxqgnry tmlko gpmwns rcf dtdey bvirmlv gzl bwuoio |
2
deesecnj vmguhee xhled rrr dfjhj fdytiaf baulvovt kvhygzhv wfaocftf scugmcqsk wadi bjeiq coesxqgnry tmlko gpmwns rcf dtdey bvirmlv gzl...
...bwuoio |
| |
|
Темы:
Строки
Дети, как известно, все раньше и раньше начинают пользоваться интернетом. Теперь, когда у них возникают вопросы, они не бегут к родителям, а заходят в свою любимую поисковую систему и узнают ответ в интернете. Но вдруг они случайно найдут что-нибудь, что им знать пока рановато? Или, может быть, лучше не знать вообще никогда?
В одной стране эту проблему решили очень просто: был создан список запрещенных для использования в интернете слов. Ведь очевидно, что статья, в которой упоминается какое-нибудь нехорошее слово, не может научить ребенка ничему хорошему. Любой сайт, содержащий хотя бы одно слово из этого списка, теперь подлежит мгновенной блокировке. Невинный ребенок никогда не натолкнется на что-нибудь, про что ему еще рановато знать — такой статьи просто не найдется в интернете. Но злобные сайтовладельцы придумали способ обойти этот запрет: если вместо некоторых букв написать внешне похожие на них цифры, то прочитать этот текст все равно будет можно, а робот, проверяющий сайты на пригодность, не распознает в слове запрещенное — ведь формально его нет на сайте.
Ваша задача — помочь правительству этой страны защитить детей от вредной информации. Напишите программу, которая будет проверять, нет ли в данной строке запрещенного слова, учитывая возможное коварство сайтовладельцев. Известно, что сайтовладельцы иногда делают следующие замены: e 3, o 0, i 1, t 7, a 4, s 5.
Входные данные
В первой строке входных данных дана строка — текст с сайта. Во второй строке входных данных дана другая строка — запрещенное слово. Первая строка состоит из маленьких латинских букв и цифр, вторая строка состоит только из маленьких латинских букв. Длина каждой строки не превышает 100.
Выходные данные
Выведите «YES», если запрещенное слово встречается как подстрока в строке с сайта, и «NO» иначе. Возможно, в строке с сайта некоторые буквы изначально были заменены на цифры в соответствии с приведенными выше правилами.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
inah0leinthegroundthereliv3dah0bb1t
hobbit |
YES |
2 |
whath4v3igotinmypocket
handses |
NO |
3 |
whath4veig0t1nmyp0ck37
knife |
NO |
4 |
wh4thav31go71nmyp0ck3t
stringofnothing |
NO |
| |
|
Темы:
Строки
Марина очень любит палиндромы. Палиндром — это строка, которая одинаково читается слева направо и справа налево, например « noon », « rotator » или « radar ».
Марина написала на доске строку s , состоящую из n строчных латинских букв s1 s2 ... sn . Подстрокой строки s называется строка s ls l + 1 ... sr для некоторых 1 ≤ l ≤ r ≤ n . Марина ищет в строке s как можно более длинную подстроку, которая является палиндромом. Например, в строке « rotateradars » такой подстрокой будет « radar ».
Вова хочет изменить написанную Мариной строку, чтобы подстрока-палиндром была как можно длиннее. Он может либо оставить строку нетронутой, либо изменить в ней ровно одну букву на другую. Например, если в строке « rotateradars » изменить шестую букву на « o », получится строка « rotatoradars », в которой максимальная подстрока-палиндром « rotator » имеет длину 7 . Подстроку-палиндром большей длины получить нельзя.
Помогите Вове определить, какую максимальную длину подстроки-палиндрома он сможет получить.
Входные данные
Первая строка входных данных содержит натуральное число n — длину строки, которую написала Марина ( 1 ≤ n ≤ 100 ).
Во второй строке входных данных содержится сама строка, состоящая из n строчных латинских букв.
Выходные данные
В выходной файл выведите одно число — максимальную длину подстроки-палиндрома, которую может получить Вова.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12
rotateradars |
7 |
| |
|
Темы:
Строки
Секретное агентство «Super-Secret-no» решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква - номер 2, вторая – номер 3, предпоследняя – номер 4, потом третья … и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров. В конец зашифрованного слова добавляется знак «диез» (#), который нельзя использовать в сообщениях.
Например, слово «sandwich» зашифруется в «shacnidw#».

К сожалению, программист «Super-Secret-no», написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.
Входные данные
Вводится слово, зашифрованное методом бутерброда. Длина слова не превышает 20 букв.
Выходные данные
Выведите расшифрованное слово.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Aabrrbaacda# |
Abracadabra |
| |
|
Темы:
Цикл for
Строки
Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: a, e, i, o, u, y. Остальные буквы являются согласными.
Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова abba, mama, program — благозвучные, а слова aaa, school, search — неблагозвучные.
Вводится слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным.
Входные данные
Вводится слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов.
Выходные данные
Выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
program |
0 |
Слово уже является благозвучным. |
2 |
school |
1 |
Достаточно добавить одну гласную букву, например, между буквами s и с |
| |
|
Темы:
Строки
Обработка текста
Телефонные номера в адресной книге мобильного телефона имеют один из следующих форматов:
+7<код><номер>
8<код><номер>
<номер>
где <номер> — это семь цифр, а <код> — это три цифры или три цифры в круглых скобках. Если код не указан, то считается, что он равен 495. Кроме того, в записи телефонного номера может стоять знак “-” между любыми двумя цифрами (см. пример).
На данный момент в адресной книге телефона Васи записано всего три телефонных номера, и он хочет записать туда еще один. Но он не может понять, не записан ли уже такой номер в телефонной книге. Помогите ему!
Два телефонных номера совпадают, если у них равны коды и равны номера. Например, +7(916)0123456 и 89160123456 — это один и тот же номер.
Входные данные
В первой строке входных данных записан номер телефона, который Вася хочет добавить в адресную книгу своего телефона. В следующих трех строках записаны три номера телефонов, которые уже находятся в адресной книге телефона Васи.
Гарантируется, что каждая из записей соответствует одному из трех приведенных в условии форматов.
Выходные данные
Для каждого телефонного номера в адресной книге выведите YES (заглавными буквами), если он совпадает с тем телефонным номером, который Вася хочет добавить в адресную книгу или NO (заглавными буквами) в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
8(495)430-23-97
+7-4-9-5-43-023-97
4-3-0-2-3-9-7
8-495-430 |
YES
YES
NO |
| |
|
Темы:
Строки
Конструктив
Даны три строки, состоящие из строчных латинских букв. С этими строками можно производить следующие операции: либо заменить один символ строки на два таких же символа (например, заменить символ «a» на «aa»), либо, наоборот, заменить два подряд идущих одинаковых символа на один такой же символ.
Необходимо при помощи этих операций сделать все три строки равными какой-то другой общей строке S либо определить, что это сделать невозможно. При этом нужно минимизировать общее количество операций.
Входные данные
Программа получает на вход три строки, состоящие из строчных букв латинского алфавита. Длина каждой строки не превышает 100 символов.
Выходные данные
Если при помощи указанных операций возможно сделать все три строки равными, выведите такую строку S , что суммарное число операций, необходимых для преобразования всех трёх данных строк к строке S , будет минимальным. Если этого сделать нельзя, программа должна вывести одно слово IMPOSSIBLE (заглавными буквами).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
aaaza
aazzaa
azzza |
aazza |
2 |
xy
xxyy
yx |
IMPOSSIBLE |
| |
|
Темы:
Строки
Вожди известного племени Мумба-Юмба решили придумать новый боевой вопль для своих воинов. При этом они решили, что вопль должен состоять ровно из N букв (всего в алфавите племени M букв). Также, после долгих исследований было выяснено, что если в вопле встречается слово si (слово – это последовательность букв алфавита, не длиннее трех символов), то этот вопль вселяет во врага fi единиц страха. Если в вопль входит несколько слов, то их “страшность” суммируется. Например, если вопль содержит слова si и sj, то вопль вселяет fi+fj единиц страха.
Требуется по заданным N, M, алфавиту и списку слов si составить максимально страшный вопль.
Входные данные:
В первой строке записано три числа – N, M и К (0<N≤100, 0<M<25, 0 ≤ K ≤ 100), где K – количество страшных слов. В следующей строке записан алфавит – строка из M строчных латинских букв. Далее в K строках записана информация о словах – само слово и через пробел одно число, обозначающее страшность этого слова (0 < fi ≤ 10000).
Выходные данные:
В выходной файл необходимо вывести страшность полученного вопля и на следующей строке – сам вопль.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 5 4
abcde
abc 10
ab 5
be 7
e 4 |
16
abe |
| |
|
Темы:
Строки
Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево, например, в английском языке такими словами являются «radar» и «racecar».
Света изучает английский язык и решила принять участие в дистанционном конкурсе знатоков английского языка. Но, когда она писала ответ на задание «найдите самое длинное слово, которое является палиндромом», ошиблась и нажала на клавиатуре одну лишнюю клавишу.
Определите, какую букву нужно удалить в набранном Светой слове, чтобы это слово стало палиндромом.
Входные данные
Программа получает на вход строку из строчных английских букв, содержащую не менее 2 и не более 100 000 символов.
Выходные данные
Программа должна вывести единственное число – номер буквы в строке, при удалении которой слово становится палиндромом. Если при удалении любой буквы слово не станет палиндромом, программа должна вывести число 0.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
raceczar |
6 |
2 |
car |
0 |
| |
|
Темы:
Строки
Алгоритмы сортировки
У Ирохи есть последовательность из N строк s1 , s2 , .., sN . Каждая строка длиной L. Ироха хочет объединить все строки, чтобы получить очень длинную строку. Среди всех строк, которые она может получить таким образом, найдите лексикографически наименьшую.
Будем считать, что строка s = s1s2...sn лексикографически меньше строки t = t1t2...tm , если выполняется одно из следующих условий:
- существует индекс i (\(1<=i<=min(n,m)\)), такой что \(s_j =t_j \), для всех индексов j (\(1<=j<=i\)), и \(s_i <t_i \);
- \(s_i=t_j\) для всех i (\(1<=i<=min(n,m)\)), и \(n<m\).
Входные данные
В первой строке задаются числа N и L . Далее идут строки s1 , s2 , .., sN , каждая в отдельной строке.
Выходные данные
Выведите лексикографически наименьшую строку, которую может создать Ироха.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 3
dxx
axx
cxx |
axxcxxdxx |
| |
|
Темы:
Строки
Громозека построил собственную клавиатуру. Эта клавиатура разработана для максимальной простоты, на ней всего 3 клавиши: клавиша 0 , клавиша 1 и клавиша backspace .
Тестировать собственную клавиатуру Громозека решил в текстовом редакторе. Этот редактор всегда отображает одну строку (возможно, пустую). При запуске редактора эта строка пуста. При нажатии каждой клавиши на клавиатуре в строке происходят следующие изменения:
- клавиша 0 : символ 0 будет вставлен справа от строки;
- клавиша 1 : символ 1 будет вставлен справа от строки;
- клавиша backspace : если строка пуста, ничего не происходит. В противном случае удаляется крайняя правая буква строки.
Громозека запустил редактор и несколько раз нажал эти клавиши. Вам дана строке s , которая является записью нажатий клавиш по порядку. В этой строке символ 0 обозначает клавишу 0 , символ 1 обозначает клавишу 1 , а символ B обозначает клавишу backspace . Определите какая строка теперь отображается в редакторе?
Входные данные
На вход подается строка s (\(1 <= len(s) <=10\)). Строка состоит из символов 0 , 1 или B .
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
01B0
|
00
|
2 |
0BB1
|
1
|
| |
|
Темы:
Строки
Пусть s - строка, состоящая из строчных букв. Мы будем называть строку s красивой, если каждая строчная буква английского алфавита встречается в ней четное количество раз. По заданной строке s , определите, красива ли она.
Входные данные
На вход подается строка. Длина строки не нулевая и не более 100 символов. Строка состоит только из строчных английских букв (a -z ).
Выходные данные
Выведите Yes если s красива, в противном случае, выведите No .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
abaccaba |
Yes |
2 |
hthth |
No |
| |
|
Темы:
Строки
Дана строка S , состоящая из строчных английских букв и пустая строка T . В конец строки T можно произвольное количество раз добавить одно из следующих слов: dream , dreamer , erase и eraser . Определите, возможно ли получить S = T .
Входные данные
На вход подается строка S (\(1<=S<=10^5\)), состоящая из строчных английских букв (a-z ).
Выходные данные
Если возможно получить S = T , выведите YES . В противном случае выведите NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
erasedream
|
YES
|
2 |
dreameraser
|
YES
|
3 |
dreamerer
|
NO
|
| |
|
Темы:
Строки
В качестве новогоднего подарка Громозека получил строку s длиной 19 следующего формата:
[пять строчных английских букв ], [семь строчных английских букв ], [пять строчных английских букв ].
Громозека хочет преобразовать строку s , разделенную запятыми, в строку, разделенную пробелами. Напишите программу для выполнения преобразования за него.
Входные данные
На вход подается одна строка s , длина строки ровно 19 символов. Шестой и четырнадцатый символы в s - это , . Остальные символы - строчные буквы английского алфавита (a-z ).
Выходные данные
Выведите строку после преобразования
Примеры
№ |
Входные данные |
Выходные данные |
1 |
happy,newyear,enjoy
|
happy newyear enjoy
|
| |
|
Темы:
Строки
Циклы
У вас есть целочисленная переменная x . Первоначально \(x = 0\). Кто-то дал вам строку S длины N , и, используя эту строку, вы выполнили следующую операцию N раз. В i -й операции вы увеличили значение x на 1 , если Si = I , и уменьшили значение x на 1 , если Si = D . Найдите максимальное значение, которое принимает x во время операций (в том числе до первой операции и после последней операции).
Входные данные
В первой строке задается число N (\(1<=N<=100\)), во второй - строка S . Длина строки N . Строка содержит только символы I и D .
Выходные данные
Выведите максимальное значение x , полученное во время операций.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5
IIDID
|
2
|
2 |
7
DDIDDII
|
0
|
| |
|
Темы:
Строки
Громозека решил построить строку, которая начинается с A и заканчивается Z , извлекая подстроку строки s (то есть последовательную часть s ). Найдите наибольшую длину строки, которую может построить Громозека. Гарантируется, что всегда существует подстрока s , которая начинается с A и заканчивается Z .
Входные данные
На вход подается строка s (\(1<=len(s)<=200000\)), состоящая из больших английских букв (A-Z ).
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснения |
1 |
QWERTYASDFZXCV |
5 |
Убрав символы с седьмого по одиннадцатый, можно построить строку ASDFZ, которая начинается с A и заканчивается Z. |
2 |
ZABCZ |
4 |
|
3 |
HASFJGHOGAKZZFEGA |
12 |
|
| |
|
Темы:
Строки
Символы
Дана строка. Известно, что она содержит ровно две одинаковые буквы. Найдите эти буквы. Гарантируется, что повторяются буквы только одного вида.
Входные данные
На вход подается 1 строка.
Выходные данные
Необходимо вывести букву, которая встречается в строке дважды.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
fif |
f |
| |
|
Темы:
Условный оператор
Строки
Символы
В уме Громозеки всегда есть целое число. Первоначально в уме Громозеки целое число равно 0 . Теперь Громозека собирается съесть четыре печеньки, на каждой из которых написан символи либо + либо - . Когда он ест печеньку с символом + , целое число в его уме увеличивается на 1 ; когда он ест печеньку с символом - , целое число в его уме уменьшается на 1 . Печеньки, которые Громозека собирается съесть, даются вам в виде строки S, i -й символ в S - это i -я печенька, которую он ест. Найдите целое число в уме Громозеки после того, как он съест все печеньки.
Входные данные
На вход подается строка из 4-х символов, каждый из которых равен + или - .
Выходные данные
Выведите целое число в уме Громозеки после того, как он съест все печеньки.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
+-++
|
2 |
2 |
-+--
|
-2 |
3 |
----
|
-4 |
| |
|
Темы:
Простые задачи на перебор
Строки
Вам дана строка S , состоящая из цифр от 1 до 9 включительно. Вы можете вставить символ + в некоторые позиции (возможно, ни в одну) между двумя цифрами в этой строке. Здесь знак + не должен появляться последовательно после вставки (т.е. не должно быть два и больше знака + подряд). Все строки, которые можно получить таким образом, можно оценить как формулы. Оцените все возможные формулы и распечатайте сумму результатов, полученных при вычислении всех возможных формул.
Входные данные
На вход подается непустая строка S , состоящая из цифр от 1 до 9 включительно. Длина строки не более 10 символов.
Выходные данные
Выведите сумму результатов, полученных при вычислении всех возможных формул.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
125 |
176 |
Всего можно получить 4 формулы: 125 , 1 + 25 , 12 + 5 и 1 + 2 + 5 .
Результат после вычисления каждой формулы:
125
1 + 25 = 26
12 + 5 = 17
1 + 2 + 5 = 8
Таким образом, сумма 125 + 26 + 17 + 8 = 176. |
2 |
9999999999 |
12656242944 |
|
| |
|
Темы:
Строки
Дан текст. Напишите программу, которая посчитает статистику - сколько раз встречается буква A , сколько - B и т.д. При этом большие и маленькие латинские буквы считать одинаковыми. В тексте могут быть сколь угодно длинные строки. Длина текста не превышает 100 Кб.
Входные данные
На вход подается текст, состоящий из английских букв (больших и маленьких), знаков препинания, цифр и т.д.
Выходные данные
Выведите 26 строк. Каждая строка должна соответствовать латинской букве, буквы должны идти в алфавитном порядке.Каждая строка должна содержать сначала большую латинскую букву, которой она соответствует, пробел, символ - (тире), пробел и число: сколько раз буква встречается во входном файле.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Ab - a |
A - 2
B - 1
C - 0
D - 0
<...здесь в выходном файле перечисляются все буквы...>
Z - 0
|
| |
|
Темы:
Структуры
Строки
Определите средний балл всех учащихся по каждому предмету.
Входные данные
В первой строке задается количество учащихся n (\(0 < n <=100\)). Далее идет n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5.
Выходные данные
Выведите три действительных числа, разделяя их одним пробелом: средний балл всех учащихся по математике, по физике, по информатике.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2
Markov Valeriy 4 5 2
Kozlov Georgiy 5 1 2
|
4.5 3 2 |
| |
|
Темы:
Строки
Структуры
Выведите фамилии и имена учащихся, не имеющих троек (а также двоек и колов).
Входные данные
Заданы сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5.
Выходные данные
Необходимо вывести пары фамилия-имя по одной на строке, разделяя фамилию и имя одним пробелом. Выводить оценки не нужно. Порядок вывода должен быть таким же, как в исходных данных.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
Babat Anna 5 4 3
Belova Galina 4 3 5
Moroz Yaroslav 3 5 4 |
|
| |
|
Темы:
Строки
Структуры
Определите трех учащихся с наилучшим средним баллом по трем предметам. Выведите фамилии и имена этих учащихся. Если при этом у нескольких учащихся средний балл совпадает со средним баллом учащегося, "занявшего 3-е место", то необходимо вывести их всех.
Входные данные
Заданы сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5.
Выходные данные
Необходимо вывести пары фамилия-имя по одной на строке, разделяя фамилию и имя одним пробелом. Выводить оценки не нужно. Порядок вывода должен быть таким же, как в исходных данных.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
Yakovlev Ivan 5 5 5
Yapryntsev Aleksey 5 5 5
Kozlov Georgiy 5 5 5 |
Yakovlev Ivan
Yapryntsev Aleksey
Kozlov Georgiy |
| |
|
Темы:
Строки
Структуры
Выведите фамилии и имена учащихся в порядке убывания их среднего балла.
Входные данные
Заданы сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5.
Общее число учащихся не превосходит 100001.
Выходные данные
Необходимо вывести пары фамилия-имя по одной на строке, разделяя фамилию и имя одним пробелом. Выводить оценки не нужно. Если несколько учащихся имеют одинаковые средние баллы, то их нужно выводить в порядке, заданном во входных данных.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2
Markov Valeriy 1 1 1
Ivanov Ivan 2 2 2 |
Ivanov Ivan
Markov Valeriy |
2 |
3
Markov Valeriy 5 5 5
Sergey Petrov 1 1 1
Petrov Petr 3 3 3 |
Markov Valeriy
Petrov Petr
Sergey Petrov |
| |
|
Темы:
Строки
| |
|
Темы:
Строки
Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далеким и незаметным...
Чтобы окончательно не уснуть, он взял листок и написал на нём свое любимое слово. Чуть ниже он повторил своё любимое слово, без первой буквы. Ещё ниже он снова написал своё любимое слово, но в этот раз без двух первых и последней буквы.
Тут ему пришла в голову мысль — времени до конца лекции все равно ещё очень много, почему бы не продолжить выписывать всеми возможными способами это слово без какой-то части с начала и какой-то части с конца?
После лекции Лёша рассказал Максу, как замечательно он скоротал время. Максу стало интересно посчитать, сколько букв каждого вида встречается у Лёши в листочке. Но к сожалению, сам листочек куда-то запропастился.
Макс хорошо знает любимое слово Лёши, а ещё у него не так много свободного времени, как у его друга, так что помогите ему быстро восстановить, сколько раз Лёше пришлось выписать каждую букву.
Входные данные
На вход подаётся строка, состоящая из строчных латинских букв — любимое слово Лёши.
Длина строки лежит в пределах от 5 до 100 000 символов.
Выходные данные
Для каждой буквы на листочке Лёши, выведите её, а затем через двоеточие и пробел сколько раз она встретилась в выписанных Лёшей словах (см. формат вывода в примерах). Буквы должны следовать в алфавитном порядке. Буквы, не встречающиеся на листочке, выводить не нужно.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
hello |
e: 8
h: 5
l: 17
o: 5 |
2 |
abacaba |
a: 44
b: 24
c: 16 |
Примечание
Пояснение к первому примеру. Если любимое Лёшино слово — "hello", то на листочке у Лёши будут выписаны следующие слова:
"hello"
"hell"
"ello"
"hel"
"ell"
"llo"
"he"
"el"
"ll"
"lo"
"h"
"e"
"l"
"l"
"o"
Среди этих слов 8 раз встречается буква "e", 5 раз — буква "h", 17 раз — буква "l" и 5 раз буква "o".
| |
|
Темы:
Строки
Префиксные суммы(минимумы, ...)
Дана строка S длины N , состоящая из символов S , T , O и K . Дайте ответ на Q запросов следующего вида.
Запрос i (1 <= i <= Q): для заданных целых чисел li и ri (1 <= li< ri <= N), рассматривается подстрока S, начинающаяся с индекса li и заканчивающася индексом ri (оба включительно). Необходимо определить, сколько раз в этой строке втречается OK как подстрока?
Пояснение
Подстрока строки - это строка, полученная удалением нуля или более символов из начала и конца строки исходной строки. Например, для строки KOTS подстроками будут строки KO, KOT, OT, OTS, (пустая строка) и другие, но не OK.
Входные данные
В первой строке записаны два числа N (2<=N<=105) и Q (1<=Q<=105). Во второй строке записана строка S длины N . Каждый символ строки это S , T , O или K . Далее идут Q строк по 2 числа в каждой: li и ri (1 <= li< ri <= N).
Выходные данные
Выведите Q строк. I -я строка должна содержать ответ на i -й запрос.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
8 3
OKOKTOKS
3 7
2 3
1 8 |
2
0
3 |
| |
|
Темы:
Строки
Условный оператор
Вывод формулы
Громозека уважает игры на шахматной доске. На обычной доске размером 8х8 у Громозеки стоит голодная пешка. Голодная пешка каждым ходом съедает какую-либо фигуру соперника (т.е. она может пойти по диагонали вперед на 1 клетку вправо или влево, назад пойти она не может). Громозека, не глядя на доску, научился определять, может ли голодная пешка попасть с одной клетки доски на другую. Превращаться в ферзя голодной пешке нельзя.
Напишите программу, с помощью которой вы могли бы также легко проверить Громозеку.
Входные данные
Программа получает на вход две клетки шахматной доски в шахматной нотации. Сначала клетка, где стоит голодная пешка, а затем, через пробел, клетка, куда голодная пешка должна попасть.
Выходные данные
Выведите слово YES (заглавными буквами), если голодная пешка может попасть из первой клетки во вторую, и NO в противном случае.
Доска имеет размер 8x8, вертикали нумеруются маленькими латинскими буквами от a до h, горизонтали - числами от 1 до 8. Исходная и конечная клетки не совпадают.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
a1 b2 |
YES |
2 |
b2 a1 |
NO |
3 |
a1 h7 |
NO |
| |
|
Темы:
Перебор
Строки
Малоизвестен тот факт, что у коров свой алфавит "cowphabet". Он состоит из тех же 26 букв от 'a' до 'z', но в другом порядке.
Чтобы скоротать время, Беси бормочет cowphabet опять и опять. Фермеру Джону интересно, сколько раз она его пробормотала.
По заданной строке букв, которые ФД расслышал из бормотания Беси, определите минимальное количество раз, которое Беси должна пробормотать cowphabet, чтобы ФД услышал заданную строку. ФД не всегда обращает внимание на бормотание Беси, поэтому он может не расслышать некоторые буквы из бормотания Беси. Данная Вам строка содержит только те буквы, которые он услышал.
Входные данные
Первая строка ввода содержит 26 маленьких латинских букв от 'a' до 'z' в порядке их появления в cowphabet. Следующая строка содержит строку из маленьких латинских букв, которые услышал ФД. Эта строка имеет длину от 1 до 1000.
Выходные данные
Выведите минимальное количество раз, которое Беси пробормотала алфавит.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
abcdefghijklmnopqrstuvwxyz
mood
|
3 |
В этом примере cowphabet упорядочен как нормальный алфавит.
Бесси пробормотала cowphabet как минимум 3 раза. Ниже показано, как Беси бормотала, и большими буквами - какие буквы услышал ФД.
abcdefghijklMnOpqrstuvwxyz abcdefghijklmnOpqrstuvwxyz abcDefghijklmnopqrstuvwxyz
|
| |
|
Темы:
ЕГЭ
Строки
Текстовый файл состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z ). Текст разбит на строки различной длины. Назовем подпоследовательность оригинальной, если она ограничена слева подстрокой AВ , а справа подстрокой BA (данные подстроки также входят в подпоследовательность) и при этом в этой подпоследовательности нет других букв А и B . Оригинальная подпоследовательность не может начинаться в одной строке, а заканчиваться в другой.
Определите, сколько всего оригинальных подпоследовательностей во всем файле, а также длину максимальной из них.
В ответе укажите слитно два целых числа, сначала количество оригинальных подпоследовательностей, затем - длину максимальной из них.
Пример
Исходный файл:
AAABCAABCBAA
ZZABZZZBABCBA
QRABUTUUBA
В этом примере всего 4 оригинальных подпоследовательности (AВСВА, ABZZZBA, ABCBA, ABUTUTBA)
Самая длинная подпоследовательность (ABUTUTBA) имеет длину 8.
Ответ: 48
Файл к заданию
| |
|
Темы:
Символы
Строки
На вход программы поступает строка s. Используя обращения к символам по индексу и срезы строк выведите следующие подстроки:
- все символы, начиная с индекса 3, до середины строки включительно (при нечетной длине строки, средний символ не брать);
- последний символ;
- все символа с четными индексами (0, 2, ...);
- все символы с нечетнымы индексами (1, 3, ...);
- все символы, кроме последнего;
- все символы, кроме первого;
- все символы в обратном порядке;
- все символы в обратном порядке, начиная с 3 с конца, и кроме первых двух;
- все символы первой половины в обратном порядке, кроме первого (при нечетной длине строки, средний символ не брать);
- скопировать срезом всю строку s в строку
s2 .
Допишите строчки в программе.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Hallo, World! |
lo,
!
Hlo ol!
al,Wrd
Hallo, World
allo, World!
!dlroW ,ollaH
lroW ,oll
,olla
Hallo, World! |
| |
|
Темы:
Задачи на процедуры и функции
Строки
Символы
Напишите функцию vowels_count , которая принимает строку и подсчитывает количество английских гласных в ней.
Английские гласные буквы: a, e, i, o, u, y .
Используя данную функцию, определите две строки:
s1 - строку с самым большим числом гласных букв (если таких строк несколько, взять ту, которая встретится раньше).
s2 - строку с самым маленьким числом согласных букв (если таких строк несколько, взять ту, которая встретится раньше).
Входные данные
В первой строке подается натуральное число n (1 < n <= 10) - количество строк. Далее идут n строк. Каждая строка состоит из английских маленьких букв и пробелов.
Выходные данные
Выведите на экран две строки: сначала строку s1 , затем, с новой строки - s2 . Наименьшую из данных строк выровняйте по длине с наибольшей, добавив слева строки символы '* '.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
mama papa
doughter son
brother sister
grandmama grandpa |
grandmama grandpa
********mama papa |
| |
|
Темы:
Строки
Символы
Вам дается строка S длиной ровно 9 символов. Каждый символ в строке - это любая из цифр от 0 до 9 . Все символы в строке различны. Выведите цифру, которой не хватает в строке.
Входные данные
На вход подается строка, состоящая из цифр.
Выходные данные
Выведите на экран ответ на задачу
Примеры
№ |
Входные данные |
Выходные данные |
1 |
023456789
|
1
|
2 |
459230781
|
6
|
| |
|
Темы:
Строки
Есть 4 квадрата, нарисованных горизонтально в ряд.
Вам дана строка S длиной 4, состоящие из 0 и 1 .
Если i -й символ S равен 1 , в i -м квадрате слева есть человек;
если i -й символ S равен 0 , в i -м квадрате слева нет человека.
Теперь все одновременно делают шаг вправо. То есть переходят на следующую клетку справа. При этом перемещении человек, который изначально находился в крайнем правом квадрате, выбывает.
Определите, останется ли человек на каждой клетке после хода.
Выведите результат в виде строки в том же формате, что и S . (Для наглядности см. пример ввода / вывода).
Входные данные
На вход подается строка S длиной 4, состоящие из 0 и 1.
Выходные данные
Выведите строку длиной 4. i -й символ должен быть равен 1 , если в i -м квадрате слева после перемещения будет человек, и 0 в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1011
|
0101
|
2 |
1111
|
0111
|
| |
|
Темы:
Строки
Условный оператор
Однажды, устав от похода в школу, Томми захотел узнать, сколько дней осталось до субботы. Мы знаем, что этот день был будним, и название дня недели было S (по-английски).Сколько дней оставалось до первой субботы после этого дня (считая саму субботу, но не считая день S )?
Входные данные
На вход подается строка S (S может быть Monday , Tuesday , Wednesday , Thursday или Friday ).
Выходные данные
Выведите на экран ответ на задачу
Используйте вложенные условия (конструкцию elif для языка Python и else if для других языков).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Wednesday
|
3
|
| |
|
Темы:
Строки
Символы
Дано предложение. Напечатать все его символы, предшествующие первой запятой. Если запятых в предложении нет, то вывести все предложение.
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается исходное предложение.
Выходные данные: необходимо вывести все символы предложения, которые предшествуют первой запятой, если запятых нет - вывести все предложение
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
fore, s t.
|
fore |
2 |
fore s t. |
fore s t. |
| |
|
Темы:
Строки
Символы
Дано предложение, в котором имеется несколько букв 'e' (англ.). Найти порядковый номер первой из них.
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается исходное предложение.
Выходные данные: необходимо вывести номе первой буквы "е" (англ) в предложении
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
foresete |
4 |
| |
|
Темы:
Символы
Строки
Дано предложение. Определить, есть ли в нем буква " a " (англ.). В случае положительного ответа вывести порядковый номер первой из них. В случае отрицательного - вывести слово NO .
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается исходное предложение.
Выходные данные: выведите ответ на задачу.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
foresete |
NO |
2 |
forast |
4 |
| |
|
Темы:
Строки
Символы
Дано слово. Проверить, является ли оно "перевертышем", (то есть читается одинаково как сначала, так и с конца).
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается слово.
Выходные данные: необходимо вывести слово "YES ", если слово является перевертышем, и слово "NO " - в противном случае
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
foresete |
NO |
2 |
halah |
YES |
| |
|
Темы:
Строки
Символы
Дана строка, разбитая на предложения. Все предложения заканчиваются знаком точка. Определить количество букв 'i' в первом предложении.
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: программа получает на вход строку.
Выходные данные: необходимо вывести количество букв 'i' в первом предложении.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
foresete. forest. |
0 |
2 |
firist. forist |
2 |
| |
|
Темы:
Строки
Символы
Дано предложение, в котором нет символа "-". Определить количество букв "o" (англ.) в первом слове. В начале предложения могут быть пробелы.
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в единственной строке задается исходное предложение.
Выходные данные: необходимо вывести количество букв "о" (англ.) в первом слове.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
fore sete. |
1 |
2 |
hal ah. |
0 |
| |
|
Темы:
Символы
Строки
Дано два слово. Определить, сколько начальных букв первого слова совпадает с начальными буквами второго слова
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается два слова через пробел
Выходные данные: необходимо вывести количество совпадающих с начала букв
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
fore forest |
4 |
2 |
forest torest |
0 |
| |
|
Темы:
Символы
Строки
Дано предложение. Определить количество букв "n", предшествующих первой запятой предложения.
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается исходное предложение.
Выходные данные: необходимо вывести количество букв "n", предшествующих первой запятой предложения.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
fore, sete. |
0 |
2 |
hanah. |
1 |
| |
|
Темы:
Строки
Символы
Дано предложение. Определить порядковые номера первой пары одинаковых соседних символов. Если таких символов нет, то вывести на экран слово NO .
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные
В первой строке задается предложение длиной не более 255 символов (в начале и конце предложения нет пробелов).
Выходные данные
Необходимо вывести через пробел порядковые номера первой пары одинаковых соседних символов, или слово "NO " - если такой пары соседних символов нет (первый символ в предложении имеет порядковый номер 1).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
foresete |
NO |
2 |
haah |
2 3 |
| |
|
Темы:
Символы
Строки
Дана последовательность символов, в начале которой имеется некоторое количество одинаковых символов. Определить это количество.
Решите задачу, не используя встроенные функции работы со строками, за исключением функции, возвращающей длину строки.
Входные данные: в первой строке задается последовательность символов.
Выходные данные: необходимо вывести количество одинаковых симвлов в начале строки.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
foresete |
0 |
2 |
ааав |
3 |
| |
|
Темы:
Строки
Символы
В строке записано предложением. Напишите программу, которая будет определять количество слов в нем. В предложении между словами только один пробел, в конце и в начале пробелов нет.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
test |
1 |
2 |
test test |
2 |
| |
|
Темы:
Символы
Строки
Измените регистр символа. Если он был строчной английской буквой сделайте его заглавной буквой; если он был заглавной английской буквой - строчной.
Входные данные
Задан единственный символ c .
Выходные данные
Необходимо вывести получившийся символ.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
a |
A |
2 |
B |
b |
| |
|
Темы:
Символы
Строки
В одной строке записаны символ и некторый текст. Напишите программу, которая заменяет все символы текста, стоящие на четных местах, заданным символом. Нумерация символов начинается с 1.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
t slovo |
stoto |
2 |
a test test |
tasa aeat |
| |
|
Темы:
Символы
Строки
В одной строке через пробел заданы два символа и некоторый текст. Напишите программу, которая заменить в тексте все буквы, совпадающие с первым символом, на второй.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
a b slovo |
slovo |
2 |
r t rr rr |
tt tt |
| |
|
Темы:
Символы
Строки
В одной строке через пробел записаны число и некоторый текст. Напишите программу, которая выводит из текста те символы, номера которых кратны заданному числу (нумерация начинается с 1).
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
2 slovo |
lv |
2 |
3 test test |
stt |
| |
|
Темы:
Символы
Строки
Дана строка. Напишите программу, которая определяет, есть ли в заданной строке цифры.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
test |
NO |
2 |
Ocenka-5 |
YES |
| |
|
Темы:
Символы
Строки
В одной строке через пробел записаны символ и предложение. Напишите программу, которая подсчитывает сколько в предложении слов, оканчивающихся на заданный символ. В предложении между словами только один пробел, в конце и в начале пробелов нет.
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
a b |
0 |
2 |
t test slovo |
1 |
| |
|
Темы:
Алгоритмы сортировки
Строки
В непустой строке сдвиг влево перемещает первый символ в конец строки, а сдвиг вправо перемещает последний символ в начало строки. Например, сдвиг влево на строке abcde приводит к bcdea , а два сдвига вправо на abcde приводят к deabc .
Дана непустая строка S , состоящая из строчных латинских букв. Среди строк, которые можно получить, выполнив ноль или более сдвигов влево и ноль или более сдвигов вправо, найдите лексикографически наименьшую строку и лексикографически наибольшую строку.
Входные данные
На вход подается одна строка S . S состоит из строчных английских букв. 1 <= |S| <= 1000, где |S| - длина строки S .
Выходные данные
Выведите в первой строке лексикографически наименьшу строку, во второй - лексикографически наибольшую строку.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
aaba |
aaab
baaa |
2 |
z |
z
z |
3 |
abracadabra |
aabracadabr
racadabraab |
| |
|
Темы:
Строки
Типы данных
Пусть S(n) - сумма цифр в десятичной системе счисления целого числа n . Например, S(123)=1+2+3=6.
Для двух трехзначных целых чисел A и B , найдите большее из S(A) и S(B) .
Входные данные
На вход подается одна строка, содержащая два целых числа A и B (100 <= A, B <= 999).
Выходные данные
Выведите значение большего из значений S(A) и S(B) . Если они равны, выведите S(A) .
Обратите внимание, что при решении задачи нельзя пользоваться операциями деления.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
123 234 |
9 |
| |
|
Темы:
Типы данных
Строки
Пусть \(N(n,k) = n+\overline{nn}+\overline{nnn} + ... +\underbrace{\overline{n..n}}_{k}\). По заданному значению n и k посчитайте значение N(n, k) .
Входные данные
Программа получает на вход две строки. В первой строке записано натуральное число n (1<=n<=9), во второй строке - натуральное число k (1 <= k <= 10).
Выходные данные
Выведите на экран N(n, k) в виде выражения и ответа.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
3
|
1+11+111=123
|
| |
|
Темы:
Бинарный поиск по ответу
Строки
"Два указателя"
В этой задаче Вам требуется найти максимальную по длине подстроку данной строки, такую что каждый символ встречается в ней не более k раз.
Входные данные
В первой строке даны два целых числа n и k (1 ≤ n ≤ 100000, 1 ≤ k ≤ n ) , где n – количество символов в строке. Во второй строке n символов – данная строка, состоящая только из строчных латинских букв.
Выходные данные
В выходной файл выведите два числа – длину искомой подстроки и номер её первого символа. Если решений несколько, выведите любое.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 1
abb |
2 1 |
2 |
5 2
ababa |
4 1 |
| |
|
Темы:
Строки
Условный оператор
Томми очень любит Новый год! 31 декабря в этом году приходится на субботу. Томми захотел узнать, сколько дней осталось до 31 декабря. Мы знаем, что сегодня будний день S (по-английски) и 31 декабря уже на этой неделе в субботу. Помогите Томми определить сколько дней оставалось до 31 декабря после сегодня (считая день 31 декабря, но не считая сегодняшний день S )?
Входные данные
На вход подается строка S (S может быть Monday (понедельник), Tuesday (вторник), Wednesday (среда), Thursday (четверг) или Friday (пятница)).
Выходные данные
Выведите на экран ответ на задачу
Используйте вложенные условия (конструкцию elif для языка Python и else if для других языков).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Wednesday
|
3
|
| |
|
Темы:
Строки
Напишите программу, которая рисует картинку размером 7х5 символов.
0 0
0 " 0
0 0
\/\
\/
| |
|
Темы:
Строки
Сортировка подсчетом
Символ называется уникальным, если он встречается в строке один раз. Первый уникальный символ - это символ с наименьшим индексом.
Дана строка s. Найдите первый уникальный символ в данной строке. Выведите его индекс. Если в строке нет уникальных символов, выведите -1 .
Входные данные
Программа получает на вход последовательность непробельных символов s .
Ограничения
'a' <= s[i] <= 'z'
0 <= i <= 255
Выходные данные
Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
silvertests
|
1 |
2 |
sstt
|
-1 |
| |
|
Темы:
Строки
Сортировка подсчетом
Дана строка s. Отсортируйте символы данной строки в порядке убывания частоты встречаемости. Частота встречаемости символа - это количество раз, которое данный символ встречается в строке.
Выведите отсортированную строку. Если два символа встречаются одинаковое количество раз, то они должны идти в лексикографическом порядке.
Входные данные
Программа получает на вход
Ограничения
1 <= s.length <= 5 * 105 (s.length - длина строки s)
s содержит большие и маленькие английские буквы и цифры.
Выходные данные
Выведите отсортированную строку.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
tree
|
eert
|
2 |
cccaaa
|
aaaccc
|
3 |
Aabb
|
bbAa
|
| |
|
Темы:
Строки
На вход программе подаются две строки:
- в первой строке задается слово s ;
- во второй - три целых числа a , b , c (каждое число находится в диапазоне [0; len(s)-1])
Выведите на экран новое слово, образованное символами с индексами a , b , c (в указанном порядке)
Примеры
№ |
Входные данные |
Выходные данные |
1 |
информатика
2 3 4 |
фор |
| |
|