Поиск по этому блогу

вторник, 22 июня 2021 г.

С27 на Питоне

Задача взята с ресурса foxford.ru

 Имеется набор данных, состоящий из троек положительных целых чисел. Необходимо выбрать из каждой тройки ровно одно число так, чтобы сумма всех выбранных чисел делилась на 4 и при этом была максимально возможной.

Входные данные

Первая строка входного файла содержит число N – общее количество троек в наборе. Каждая из следующих N строк содержит три натуральных числа, не превышающих 100 000.

Программа должна обработать два файла.

a.txt

b.txt

Решение: (разработано совместно Абросимовым Даниилом)

f=open(r"d:\b.txt","r") #в программе  файл расположен в корне диска d

c=int(f.readline())

s=0

a=[10000000,10000000,1000000,10000000]

for i in range(c):

    x,y,z=map(int,f.readline().split())

    s+=max(x,y,z)

    r=min(abs(x-y),abs(x-z),abs(y-z))

   o=r%4

    if a[o]>r:

        a[o]=r

 os=s%4

if os==1:

    ss=min(a[1],a[3]-a[2])

    if ss<0:

        ss=a[1]

elif os==2:

    ss=min(a[2],a[3]-a[1])

    if ss<0:

        ss=a[2]    

elif os==3:

    ss=min(a[3],a[1]+a[2])

print(ss)

if os==0:

    print(s)

else:

    s=s-ss

    print(s)

    Ответы:

a-7526892

b-4502345872

Комментариев нет:

Отправить комментарий