def maximum_length_sublist_sum_equal_to_k(lst, k):
dict = {}
sum = 0
length = 0
end_index = -1
dict[0] = -1
size = len(lst)
for i in range(size):
sum += lst[i]
if sum not in dict:
dict[sum] = i
if sum - k in dict and length < i - dict[sum - k]:
length = i - dict[sum - k]
end_index = i
print("start index = ", end_index - length + 1, ", end index = ", end_index)
return length
lst = [1, -1, 5, -2, -3, 2, 3, 3]
k = 3;
# 1, -1, 5, -2 = 3 (4)
# 5, -2 = 3 (2)
# -2, -3, 2, 3, 3 = 3 (5)
print(maximum_length_sublist_sum_equal_to_k(lst, k))
'''
run:
start index = 3 , end index = 7
5
'''