Все пятибуквенные слова, в составе которых могут быть только буквы П, А, Р, У, С, записаны в алфавитном порядке и пронумерованы начиная
Ниже приведено начало списка.
1. ААААА
2. ААААП
3. ААААР
4. ААААС
5. ААААУ
6. АААПА
...
Под каким номером в списке идёт последнее слово, которое содержит не более одной
Приведём решение на языке Python.
from itertools import product
count = 0
m = []
for p in product(sorted("ПАРУС"), repeat=5):
count += 1
s = ''.join(p)
if ("АА" not in s) and s.count("У") <= 1:
m.append(count)
print(max(m))
Ответ: 2969.
Приведём решение Артёма Гридина на языке Python.
from itertools import product
for i, p in enumerate(product(sorted('ПАРУС'), repeat=5)):
if p.count('У') <= 1 and 'АА' not in p:
a = i+1
print(a)
Приведём решение Александра Козлова на языке Python.
num = []
for x1 in '01234':
for x2 in '01234':
for x3 in '01234':
for x4 in '01234':
for x5 in '01234':
s = x1+x2+x3+x4+x5
if '00' not in s and s.count('4')<=1:
num.append(int(s,5)+1)
print('Ответ:',max(num))
Приведём решение Александра Козлова на языке Python.
def five(x):
s = ''
while x:
s = str(x%5) + s
x = x//5
return s
otvet = []
end = int('44444',5)
for i in range(1,end):
s = five(i-1)
if '00' not in s and s.count('4') == 1:
otvet.append(i)
print(max(otvet))
Приведём решение Александра Козлова на языке Python.
def sys_5(n):
return str(n % 5) + sys_5(n // 5) if n else ''
end = int('44444', 5)
otvet = max(i for i in range(1, end) if '00' not in sys_5(i - 1) and sys_5(i - 1).count('4') == 1)
print(otvet)
Приведём программу Сергея Донец на PascalABC.NET:
begin
'П, А, Р, У, С, '.Remove(', ')// удаление запятых и пробелов
.Sorted.JoinToString// сортировка по алфавиту
.Cartesian(5).Numerate// нумерация начиная с 1
.Where(t->not t[1].isMatch('АА'))//не содержит букв А, стоящих рядом
.Where(t->t[1].Matches('У').count<=1)//Не более одной буквы У
.Last//// (2969,УСССС) - номер и само слово
.item1.print;//2969
end.

