I am trying to solve this problem on HackerRank:
Animesh has N empty candy jars numbered from 1 to N with infinite capacity. He performs M operations. Each operation is described by 3 integers a, b and k where a and b are index of >the jars and k is the number of candies to be added inside each jar with index between a and >b (both inclusive). Can you tell the average number of candies after M operations? I have written the below code in Python 3:
def operate(a, b, k, array):
for i in range(a - 1, b):
array[i] += k
def mean(array):
return int(sum(array) / len(array))
splitinput = [int(x) for x in input().split()]
candy = []
for i in range(splitinput[0]):
candy.append(0)
for j in range(splitinput[1]):
splitinput2 = input().split()
operate(int(splitinput2[0]), int(splitinput2[1]), int(splitinput2[2]), candy)
print(mean(candy))
It works, but times out on some test cases. How could I approach making this faster? I'm been coding in Python for a while, but the finer points of optimization still elude me.
for j in range(splitinput[1])part. Such programs can often be surprising, though, so I agree.