Тема . (старое) 27. Программирование

.05 Макс/мин, кол-во пар, сумма/разность кратна/не кратна

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела (старое) 27. программирование
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#63852

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

1) второе число в каждой выбранной паре нечётное;

2) сумма больших чисел во всех выбранных парах чётная;

3) сумма меньших чисел во всех выбранных парах нечётная.

Какую наибольшую сумму чисел во всех выбранных парах можно при этом получить?

В ответе укажите два числа: сначала значение суммы для файла А, затем через пробел значение суммы для файла B.

Вложения к задаче
Показать ответ и решение

Примечание. Для файла B необходимо заменить первую строку кода.

f = open("27A_6.txt")
n = int(f.readline())
sum0 = 0
sum1 = 0
min1 = 20001
min2 = 20001
min3 = 20001
for i in f:
    x, y = i.split()
    x = int(x)
    y = int(y)
    if y % 2 == 1:
        if x > y:
            sum1 = sum1 + y
            sum0 = sum0 + x
            if (y % 2 == 1) and (x % 2 == 1) and ((x + y) < min1):
                    min1 = x + y
            if (y % 2 == 0) and (x % 2 == 1) and ((x + y) < min2):
                    min2 = x + y
            if (y % 2 == 1) and (x % 2 == 0) and ((x + y) < min3):
                    min3 = x + y
        else:
            sum1 = sum1 + x
            sum0 = sum0 + y
            if (y % 2 == 1) and (x % 2 == 1) and ((x + y) < min1):
                min1 = x + y
            if (x % 2 == 0) and (y % 2 == 1) and ((x + y) < min2):
                    min2 = x + y
            if (x % 2 == 1) and (y % 2 == 0) and ((x + y) < min3):
                    min3 = x + y
if (sum0 % 2 == 0) and (sum1 % 2 == 1):
    print(sum0 + sum1)
elif (sum0 % 2 == 1) and (sum1 % 2 == 0):
    if min1 < min2 + min3:
        print(sum0 + sum1 - min1)
    else:
        print(sum0 + sum1 - min2 - min3)
elif (sum0 % 2 == 1) and (sum1 % 2 == 1):
    if min2 < min3 + min1:
        print(sum0 + sum1 - min2)
    else:
        print(sum0 + sum1 - min3 - min1)
                                                                                                  
                                                                                                  
elif (sum0 % 2 == 0) and (sum1 % 2 == 0):
    if min3 < min2 + min1:
        print(sum0 + sum1 - min3)
    else:
        print(sum0 + sum1 - min2 - min1)

Ответ: 391 3005633

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!