Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2840269
А
Аноним
25 февраля 2025 16:37 · публичный вопрос
А
Аноним

В файле 17-316.txt содержится последовательность целых чисел. Элементы последовательности - четырёхзначные натуральные числа. Назовём два различных четырёхзначных числа хорошей…

Запрос пользователя

В файле 17-316.txt содержится последовательность целых чисел. Элементы последовательности - четырёхзначные натуральные числа. Назовём два различных четырёхзначных числа хорошей парой, если сумма первых цифр двух чисел равна сумме последних цифр тех же чисел. Найдите все тройки элементов последовательности, в которых есть хотя бы одна хорошая пара, а среднее арифметическое всех чисел тройки больше, чем среднее арифметическое всех чисел в файле. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Ответ нейросети
25 февраля 2025 16:37

Для решения данной задачи нам необходимо выполнить несколько шагов. Давайте разложим её на части и разберём каждую.

Шаг 1. Чтение данных из файла

Первым делом, откроем файл и считаем последовательность целых чисел. Предположим, что файл находится в том же каталоге, где выполняется наш код.

Пример кода на Python для чтения файла:

with open('17-316.txt', 'r') as file:
    numbers = list(map(int, file.readlines()))

Шаг 2. Определение функции для проверки "хорошей пары"

Далее, мы должны определить, что такое "хорошая пара". Пара двух разных четырёхзначных чисел (A, B) является хорошей, если сумма первых цифр равна сумме последних цифр.

Функция для проверки:

def is_good_pair(num1, num2):
    str_num1, str_num2 = str(num1), str(num2)
    return (int(str_num1[0]) + int(str_num1[1])) == (int(str_num2[0]) + int(str_num2[1])) \
           and (int(str_num1[2]) + int(str_num1[3])) == (int(str_num2[2]) + int(str_num2[3]))

Шаг 3. Вычисление среднего арифметического

Теперь необходимы средние арифметические значения. Сначала рассчитаем среднее арифметическое всех чисел в файле:

average_all = sum(numbers) / len(numbers)

Шаг 4. Поиск троек с "хорошими парами"

Теперь пройдём по всем тройкам последовательных чисел. Мы будем проверять для каждой тройки, есть ли в ней хотя бы одна "хорошая пара" и превышает ли среднее арифметическое тройки среднее из файла.

Код для проверки троек:

count_triples = 0
max_sum_triple = 0

for i in range(len(numbers) - 2):
    triple = numbers[i:i+3]
    sum_triple = sum(triple)
    average_triple = sum_triple / 3
    
    # Проверка средних арифметических
    if average_triple > average_all:
        # Проверка на "хорошую пару"
        found_good_pair = False
        for j in range(3):
            for k in range(j + 1, 3):
                if is_good_pair(triple[j], triple[k]):
                    found_good_pair = True
                    break
            if found_good_pair:
                break
            
        if found_good_pair:
            count_triples += 1
            max_sum_triple = max(max_sum_triple, sum_triple)

Шаг 5. Результаты

В конце выведем результаты:

print(count_triples, max_sum_triple)

Итог

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