Задание 8. Информатика. ЕГЭ. Поляков-7412

Просмотры: 115
Изменено: 17 октября 2024

(А. Минак) Все шестибуквенные слова, составленные из букв Г, Л, У, Б, И, Н, А записаны в обратном алфавитном порядке и пронумерованы. Вот начало списка:

  1. УУУУУУ
  2. УУУУУН
  3. УУУУУЛ
  4. УУУУУИ
  5. УУУУУГ
  6. УУУУУБ
  7. УУУУУА
  8. ...

Определите в этом списке количество слов с нечётными номерами, которые содержат две буквы А между которыми имеются две другие буквы (например, АГНА или АННА, но не ААНА и не АААА) и при этом содержат в своей записи более одной буквы H.

Решение:

Python


from itertools import product

def valid(s):
    if s.count('Н') < 2:
        return False
    if s.count('А') < 2:
        return False
    else:
        pos = [i for i in range(len(s)) if s[i] == 'А']
        if  any(y - x == 3 for x, y in zip(pos, pos[1:])):
            return True
        else:
            return False

q, i = 0, 0

for p in product('УНЛИГБА', repeat=6):
    i += 1
    q += int(i % 2 and valid(''.join(p)))

print(q)

Ответ: \(318\)