← Все вопросы

Задание 17 ЕГЭ: ищу пары чисел в файле, не сходится ответ. Что не так?

Задан 17 месяцев назад652 просмотров4 ответа
11

В 17-м дан файл из целых чисел, надо найти количество пар (или пар, идущих подряд / на расстоянии) с каким-то условием — например, сумма кратна минимальному элементу, и максимальную сумму такой пары. Файл читаю, а ответ не совпадает с эталоном. Где обычно косяк?

4 ответа

13

Чаще всего ошибка в определении «пары». В ЕГЭ пара — это элементы, у которых разница индексов больше 1 (не соседние), если прямо не сказано «идущих подряд». Внимательно перечитай условие. Базовый каркас:

with open('17.txt') as fp:
    a = [int(x) for x in fp]

mn = min(a)
count = 0
best = -10**9
for i in range(len(a)):
    for j in range(i + 1, len(a)):   # все пары i<j
        s = a[i] + a[j]
        if s % mn == 0:              # условие из задачи
            count += 1
            best = max(best, s)
print(count, best)

Если просят «соседние» — замени внутренний цикл на j = i + 1. И не забудь, что минимум/среднее обычно считается по ВСЕМ числам, а не по отфильтрованным.

Nikita Hook автор: вот в этом и была ошибка, спасибо · 16 месяцев назад
Алексей Сехан точно, у меня было «не соседние», а я брал подряд 🤦 · 16 месяцев назад
8

99% таких косяков — неверно понял, что считается парой (подряд vs любые i<j) и по чему берётся min/среднее.

4

Покажи условие целиком, без него гадаем. Но скорее всего перепутал «соседние» и «любые две».

-3

Читай файл через int(input()) в цикле, файлы в питоне неудобные.

Чингиз Цыдыпов нет, open() и читать построчно — это и есть правильно для 17 · 16 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект