Guest User

Untitled

a guest
Aug 15th, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. from heapq import heapify, heappop, heappush
  2.  
  3. def area(size):
  4. return size * size * 3.141592
  5.  
  6. def largestPiece(cakeDiameters, slicesToFind):
  7. cakes = [(-area(x), 1, area(x)) for x in cakeDiameters]
  8. heapify(cakes)
  9. biggestSize = 99999999 #MaxInt
  10. for number in range(slicesToFind):
  11. current, currentSlicesInCake, originalSize = heappop(cakes)
  12. biggestSize = -current
  13. newSlicesInCake = currentSlicesInCake + 1
  14. newSize = (originalSize / newSlicesInCake) * -1
  15. nextEntry = (newSize, newSlicesInCake, originalSize)
  16. heappush(cakes, nextEntry)
  17. return biggestSize
  18.  
  19. slicesToGet = 4
  20. print(largestPiece([1, 1, 1, 2, 2, 3], slicesToGet))
  21.  
  22. """Given a list of cakes by their radii, and a number of slices to be made,
  23. get the largest slice size that can made from these cakes assuming you want an
  24. equal slice size, and a slice can't be composed from more than one cake"""
Advertisement
Add Comment
Please, Sign In to add comment