While solving the problem packaging cupcakes I was able to come up with a solution but got time limit exceeded error upon submission.
my logic: store all the remainders in a list, get the indices of the max remainder and output index + 1
upon seeing the submitted solutions I noticed that people have used the formula n/2 + 1 where n is the number of cupcakes.
my code: import random def get_rem(n): remainder =  for i in range(1, n+1): rem = n % i remainder.append(rem) # print "rem: ", remainder # remainder = [4, 7, 9, 4, 1, 6, 9] max_value = max(remainder) if remainder.count(max_value): max_l = [i for i, j in enumerate(remainder) if j == max_value] print "max remainder pos:", max_l max_div = int(max(max_l)) + 1 # print "Type:", type(max_div) print max_div # t = int(raw_input()) # for i in range(t): # n = int(raw_input()) # get_rem(n) # for testing t = random.randint(1, 1000) print t for i in range(t): n = random.randint(2, 10 ** 8) print n get_rem(n)
can any one please tell me how can i fix the time limit exceeded error and why am i getting it also can please explain the n/2 + 1 logic