Программа должна выбрать 3 самых низких числа, идущих подряд из введённых.
Вопрос вот в чём, программа при таких данных на ввод:
10
-5
-2
-1
6
3
0
-2
-2
-3
-3
0
5
8
по идее должна выводить
-5
-2
-1
так как в сумме они дают -8 и вводятся первее чем -2 -2 -3
но программа выводит именно
-2
-2
-3
удаляя в принципе вариант с -5 -2 -1 из словаря.
Я хочу чтобы было наоборот, чтобы из словаря удалялось именно -2 -2 -3, так как оно вводится позже.
Подскажите пожалуйста, как исправить
Программа:
import sys
from sys import stdin
lst1 = []
lst2 = []
for line in sys.stdin.readlines():
replacedline = line.replace('\n', '')
lst1.extend(replacedline.split(';'))
intlst = [int(s) for s in lst1]
intlst.append(100000)
intlst.append(100000)
for i in range(len(intlst) - 2):
lst2.append(intlst[i] + intlst[i + 1] + intlst[i + 2])
dict1 = {}
for j in range(len(intlst) - 2):
dict1[lst2[j]] = intlst[j], intlst[j + 1], intlst[j + 2]
del dict1[100013]
del dict1[200008]
intlst = intlst[:-2]
lst2 = lst2[:-2]
keys = list(dict1.keys())
minkey = min(lst2)
answer = dict1.get(minkey)
for k in answer:
print(k)
print()
Ввод делается через Ctrl + D
А и да, эти странные числа, которые я добавляю, а затем удаляю - это я искал как обойти IndexError. Если знаете как можно сделать это по-человечески - подскажите пожалуйста.