
Задача 5: Древнее имя Катя очень любит историю, поэтому ей подарили книгу про древние индейские
имена. В книге утверждается, что коэффициент древности имени равен количеству таких пар букв имени, что первая буква пары стоит в имени раньше второй, и при этом первая буква пары и в алфавите стоит раньше второй. Катя так восхитилась данным способом, что сразу же захотела подсчитать древность своего любимого индейского имени. Входные данные В первой строке входных данных содержится целое число N (1 ≤ N ≤ 105) — длина любимого индейского имени Кати. Во второй строке содержится последовательность из N строчных букв английского алфавита — любимое индейское имя Кати. Выходные данные Выведите единственное целое число — коэффициент древности имени.

Ответы на вопрос

Ответ:
ответ 5
Объяснение:
n, result = int(input()), int(input())
spis = list(range(1, n + 1))
while spis != [result]:
index = spis.index(result) + 1
if index % 2 != 0:
spis = list(filter(lambda x: spis.index(x) % 2 == 0, spis))
print(2)
else:
spis = list(filter(lambda x: spis.index(x) % 2 != 0, spis))
print(1)



Для решения данной задачи, мы можем применить следующий алгоритм:
Создадим переменную
count
и инициализируем её нулём. Она будет считать количество пар букв, удовлетворяющих условию задачи.Создадим переменную
alphabet
, содержащую английский алфавит в порядке возрастания букв.Пройдёмся по каждой букве в индейском имени.
Для каждой буквы, пройдёмся по алфавиту и посмотрим, сколько букв стоит после неё и удовлетворяет условию задачи. Если буква стоит раньше второй и в алфавите, и в имени, увеличим
count
на 1.Выведем значение
count
как результат.
Вот пример реализации данного алгоритма на языке Python:
pythonN = int(input()) # Читаем длину имени
name = input() # Читаем имя
count = 0 # Инициализируем счётчик
alphabet = "abcdefghijklmnopqrstuvwxyz" # Английский алфавит
# Проходимся по каждой букве в имени
for i in range(N):
# Проходимся по алфавиту для проверки каждой буквы, стоящей после текущей буквы имени
for j in range(alphabet.index(name[i])+1, len(alphabet)):
# Если буква стоит раньше второй и в алфавите, и в имени, увеличиваем счётчик
if alphabet.index(name[i]) < alphabet.index(name[i+1]) and alphabet.index(alphabet[j]) < alphabet.index(name[i+1]):
count += 1
print(count) # Выводим результат
Этот код принимает вводные данные из стандартного ввода и выводит результат в стандартный вывод.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili