Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Возьмем произвольное слово и проделаем с ним следующую операцию: поменяем местами его первую согласную букву с последней согласной буквой, вторую согласную букву с предпоследней согласной буквой и т.д. Если после этой операции мы вновь получим исходное слово, то будем называть такое слово негласным палиндромом. Например, слова sos, rare, rotor, gong, karaoke являются негласными палиндромами.
Вам требуется написать программу, которая по данному слову определяет, является ли оно негласным палиндромом.
Вводится строка, содержащая только строчные буквы латинского алфавита.
Программа должна вывести YES, если введенное слово является негласным палиндромом, и NO в противном случае.
tennete
YES
Максимальное время работы на одном тесте: 2 секунды
При разработке программ для просмотра веб-страниц одной из наиболее сложных задач является корректное отображение таблиц. Компания «Kozilla», в которой вы работаете, планирует разработать новую версию браузера «Waterrat» для работы в терминальном режиме и просит вас написать фрагмент ядра отображения веб-страниц, ответственный за формирование структуры таблиц.
Фрагмент, который вы должны написать, получает на вход информацию о количестве строк таблицы и ячейках этих строк и должен сгенерировать структуру таблицы и передать ее модулю, который занимается отображением таблицы на экране.
Таблица состоит из строк, каждая строка состоит из одной или нескольких ячеек, j-я ячейка i-й строки имеет ширину ai, j.
По заданным параметрам таблицы постройте символическое изображение ее структуры.
В первой строке вводится число n – количество строк в таблице ( 1n
100). Каждая из следующих n строк входных данных описывает одну строку таблицы.
Описание строки включает число mi – количество ячеек в этой строке, и mi целых чисел ai, 1, ai, 2,..., ai, mi – ширину каждой из ячеек строки ( 1mi
10, 1
ai, j
20).
Выведите символическое изображение структуры таблицы.
Изображение i-й строки таблицы должно начинаться горизонтальной линией, составленной из символов «+» (плюс) и «-» (минус). Затем должна следовать строка, содержащая пробелы и символы «|» (вертикальная черта). Первым символом строки должна быть вертикальная черта, затем ai, 1 пробелов, затем вертикальная черта, затем ai, 2 пробелов, и так далее, всего mi блоков пробелов. После последнего блока должна следовать вертикальная черта.
После последней строки таблицы также должна следовать горизонтальная линия.
В изображении горизонтальной линии используйте символ «+», если сверху или снизу от этой позиции находится вертикальная черта, и «-» в противном случае. Горизонтальная черта должна иметь минимальную возможную длину, чтобы над каждым символом вертикальной черты следующей строки и под каждым символом вертикальной черты предыдущей строки были символы «+».
4 3 3 5 1 1 2 1 2 2 5 1
+---+-----+-+ | | | | +--++-----+-+ | | +--+ | | +--+--+-+ | | | +-----+-+
Неудовлетворенный стандартным календарем своей операционной системы, Витя решил написать программу, которая будет выводить красиво отформатированный календарь. Он разработал формальные требования к календарю, но понял, что сам не способен написать соответствующую программу. Помогите ему.
Календарь состоит из блоков, каждый из которых соответствует одному месяцу. Блоки расположены в виде таблицы из k столбцов и 12/k строк (k выбирается делителем числа 12). Месяцы выводятся в следующем порядке: первая строка содержит блоки, соответствующие месяцам с первого по k-ый, следующая – с (k + 1)-го по 2k-ый, и т. д.
Ширина всех блоков в столбце должна быть одинакова, высота всех блоков равна семи (числу дней в неделе). Между блоками различных строк таблицы выводится пустая строка, в каждой строке между соседними блоками из разных столбцов выводится три пробела.
Блок, соответствующий месяцу, устроен следующим образом. Каждой (в том числе неполной) неделе данного месяца в блоке соответствует столбец, имеющий ширину, равную двум. Между двумя соседними столбцами в каждой строке выводится один пробел. Если несколько блоков располагаются в одном столбце календаря, то для выравнивания ширины в те блоки, которые содержат меньше недель, в конец добавляется необходимое число пустых столбцов-недель. При этом разные столбцы календаря могут иметь разную ширину.
Все числа месяца заносятся в блок, соответствующий этому месяцу. Число заносится строку блока, соответствующую дню недели, на который приходится число в этом месяце. Число заносится в столбец блока, соответствующий неделе, к которой относится данное число. Однозначные числа дополняются слева одним пробелом. Таким образом, числа в столбце оказываются выравнены по правому краю.
![]() | ![]() | |
Общая схема календаря | Схема блока месяца |
На вход прораммы поступает описание года, календарь для которого следует вывести. Оно содержит три числа: d – день недели, на который приходится первое января ( 1d
7), l – является ли год високосным (l = 1 означает, что год является високосными, l = 0 – что не является) и k – количество столбцов в календаре (k – одно из чисел 1, 2, 3, 4, 6, 12).
Напомним, что високосный год отличается от обычного тем, что в високосном году февраль содержит 29 дней.
Выведите календарь, отформатированный в соответствии с условием задачи. Проверяющая программа в этой задаче игнорирует пробелы в конце строк. В остальном календарь должен быть отформатирован в точности так, как описано в условии.
4 1 4
5 12 19 26 2 9 16 23 1 8 15 22 29 5 12 19 26 6 13 20 27 3 10 17 24 2 9 16 23 30 6 13 20 27 7 14 21 28 4 11 18 25 3 10 17 24 31 7 14 21 28 1 8 15 22 29 5 12 19 26 4 11 18 25 1 8 15 22 29 2 9 16 23 30 6 13 20 27 5 12 19 26 2 9 16 23 30 3 10 17 24 31 7 14 21 28 6 13 20 27 3 10 17 24 4 11 18 25 1 8 15 22 29 7 14 21 28 4 11 18 25 3 10 17 24 31 7 14 21 28 5 12 19 26 2 9 16 23 30 4 11 18 25 1 8 15 22 29 6 13 20 27 3 10 17 24 31 5 12 19 26 2 9 16 23 30 7 14 21 28 4 11 18 25 6 13 20 27 3 10 17 24 1 8 15 22 29 5 12 19 26 7 14 21 28 4 11 18 25 2 9 16 23 30 6 13 20 27 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28 2 9 16 23 30 6 13 20 27 4 11 18 25 1 8 15 22 29 6 13 20 27 4 11 18 25 1 8 15 22 29 6 13 20 27 7 14 21 28 5 12 19 26 2 9 16 23 30 7 14 21 28 1 8 15 22 29 6 13 20 27 3 10 17 24 1 8 15 22 29 2 9 16 23 30 7 14 21 28 4 11 18 25 2 9 16 23 30 3 10 17 24 1 8 15 22 29 5 12 19 26 3 10 17 24 31 4 11 18 25 2 9 16 23 30 6 13 20 27 4 11 18 25 5 12 19 26 3 10 17 24 31 7 14 21 28 5 12 19 26
Пароль называется криптостойким, если он включает в себя и строчные латинские буквы, и заглавные латинские буквы, и цифры, при этом его длина должна быть не менее 8 символов.
Требуется по данному паролю определить, является ли он криптостойким.
Вводится одна строка, состоящая только из латинских букв и цифр. Количество символов в строке не превышает 100.
Выведите слово YES, если указанный пароль является криптостойким, и NO – в противном случае (заглавными латинскими буквами).
1
NO
q
NO
Шпион Коля зашифровал и послал в центр радиограмму. Он использовал такой способ шифровки: сначала выписал все символы своего сообщения (включая знаки препинания и т.п.), стоявшие на четных местах, в том же порядке, а затем – все символы, стоящие на нечетных местах. Напишите программу, которая расшифровывает сообщение.
Вводится одна непустая строка длиной не более 250 символов – зашифрованное сообщение. Строка может состоять из любых символов, кроме пробельных.
Выведите одну строку – расшифрованное сообщение.
rvt!Pie!
Privet!!