Входные данные: Даны два входных файла: файл A (27-2a.txt) и файл B (27-2b.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000.
Пример входного файла:
61 3
5 11
6 9
5 4
3 3
1 1
Для указанных входных данных значением искомой суммы должно быть число 30.
В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.
Решение:
f= open("27-2b.txt")
delit = 3
n = int( f.readline() )
s, dmn = 0, [10001]*delit
for i in range(n):
a, b = map( int, f.readline().split() )
s += max( a, b )
d = abs( a-b )
r = d % delit
if r > 0:
dmin = dmn[:]
for k in range(1, delit):
r0 = (r + k) % delit
dmin[r0] = min( d+dmn[k], dmn[r0] )
dmin[r] = min( d, dmn[r] )
dmn = dmin[:]
if s % delit == 0:
print( s )
else:
print( s - dmn[s % delit] )
f.close()
Вот соответственно эти числа: 109737 401536407
Комментариев нет:
Отправить комментарий