Hello, The analysis for the "Infinite House of Pancakes" problem (https://code.google.com/codejam/contest/6224486/dashboard#s=a&a=1) shows code for the O(D*M) solution. However, it also mentions a O(D*sqrt(M) + M) solution (without showing the code). Can someone provide an example code or tell me how to adapt my Python solution to be O(D*sqrt(M) + M) ?
def solve(): T = int(input()) # the number of test cases for case in range(1, T+1): input() # the number of diners with non-empty plates, ignored diners = [int(x) for x in input().split()] minutes = max(diners) # the max stack of pancakes (= the max time) # try to arrange all pancakes to stacks of equal height for ncakes in range(1, minutes): s = sum([(d - 1) // ncakes for d in diners if d > ncakes]) # number of special minutes if s + ncakes < minutes: minutes = s + ncakes print(f'Case #{case}: {minutes}') -- You received this message because you are subscribed to the Google Groups "Google Code Jam" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-code+unsubscr...@googlegroups.com. To post to this group, send email to google-code@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/google-code/fe0d6ab4-a4bd-46bc-98e7-eacc890f31ae%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.