Top.Mail.Ru
Ответы

17 задание егэ по информатики

Задание 17
Уровень сложности: Средняя
Средняя
Автор: Яндекс УчебникЯндекс УчебникТема: Обработка числовой последовательности в файле(Обработка числовой последовательности в файле)
В файле содержится последовательность целых чисел, каждое из которых по модулю не превышает 100 000. Определите количество троек элементов последовательности, в которых больше одного из трёх элементов оканчиваются на 3 или 5, а произведение элементов тройки не больше куба максимального четырёхзначного элемента последовательности.

Гарантируется, что в последовательности есть хотя бы одно четырёхзначное число. В ответе запишите количество найденных троек чисел, затем — максимальную из сумм элементов таких троек.

В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

with open ('vika.txt') as f:
s = list(map(int, f.readlines()))
max_sum = int()
max_4 = 9999
h = 0
for i in range(len(s) - 2):
a = s[i]
b = s[i + 1]
c = s[i + 2]
v = sum(1 for x in (a, b, c) if x % 10 == 3 or x % 10 == 5)
if v > 1 and (a * b * c) <= max_4 ** 3:
h += 1
k = a + b + c
if k > max_sum:
max_sum = k
if h == 0:
max_sum = 0

print(h, max_sum)


помогите пожалуйста,почему то не совпадает ответ

По дате
По рейтингу
Аватар пользователя
Ученик
5мес

незнаю

Аватар пользователя
Мыслитель
5мес
1234567
 s=[*map(int,open('vika.txt'))] 
m=max(x for x in s if 999<x<10000) 
k=[];t=0 
for i in range(len(s)-2): 
 a,b,c=s[i:i+3] 
 if sum(n % 10 in{3,5}for n in(a,b,c))>1 and a*b*c<=m**3:t+=1;k+=a+b+c, 
print(t,max(k)if k else 0) 
Аватар пользователя
Оракул
5мес
1234567891011121314151617
 with open('vika.txt') as f: 
    s = list(map(int, f.readlines())) 
     
    max_4 = max(x for x in s if 1000 <= x <= 9999) 
    count = 0 
    max_sum = 0 
     
    for i in range(len(s) - 2): 
        a, b, c = s[i], s[i+1], s[i+2] 
         
        ends_with_3_or_5 = sum(1 for num in (a, b, c) if num % 10 in {3, 5}) 
        if ends_with_3_or_5 > 1 and a * b * c <= max_4 ** 3: 
            count += 1 
            current_sum = a + b + c 
            if current_sum > max_sum: 
                max_sum = current_sum 
    print(count, max_sum)