Все 5-буквенные слова, в составе которых могут быть только буквы Э, Л, Ь, Б, Р, У, С, записаны в алфавитном порядке и пронумерованы.
Вот начало списка:
1. БББББ
2. ББББЛ
3. ББББР
4. ББББС
5. ББББУ
6. ББББЬ
...
Под каким номером в списке идёт последнее слово c чётным номером, которое содержит не менее двух букв С, одну букву Л и не содержит букв Э, стоящих рядом?
Приведём решение на языке Python.
from itertools import product
count = 0
m = []
for p in product(sorted("ЭЛЬБРУС"), repeat=5):
count += 1
s = ''.join(p)
if count%2 == 0 and ("ЭЭ" not in s) and s.count("С") >= 2 and s.count("Л") == 1:
m.append(count)
print(max(m))
Ответ: 15948.
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Э, Л, Ь, Б, Р, У, С, '.remove(', ')
.Sorted.JoinToString
.Cartesian(5).Numerate
.Where(\(n,s)-> (n mod 2 = 0)) // c чётным номером
.Where(\(n,s)-> s.CountOf('С') >= 2) // не менее двух букв С
.Where(\(n,s)-> s.CountOf('Л') = 1) //одну букву Л
.Where(\(n,s)-> not s.isMatch('[Э][Э]') ) // не содержит букв Э, стоящих рядом
.Last//(15948,ЭУССЛ)//последнее слово
.Item1//15948 // номер искомого слова
.Print;
end.

