Guest User

Untitled

a guest
Nov 23rd, 2011
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # answer is 43!
  2. nuggets = []
  3. # available sizes ordered from lowest to highest
  4. size = [6,9,20]
  5. # we know that 50 sets of McNuggets is possible
  6. maximumSets = 50
  7. # we will have to test at least maximum sets divided by lowest size
  8. checkUpTo = maximumSets / size[0]
  9.  
  10. for i in range(0, checkUpTo):
  11.   for j in range(0, checkUpTo):
  12.     for k in range(0, checkUpTo):
  13.       # we add all possible sizes being checked
  14.       nuggets.append(i*size[0]+j*size[1]+k*size[2])
  15.      
  16. # we remove duplicates and sort
  17. if nuggets:
  18.     nuggets.sort()
  19.     last = nuggets[-1]
  20.     for i in range(len(nuggets)-2, -1, -1):
  21.         if last == nuggets[i]:
  22.             del nuggets[i]
  23.         else:
  24.             last = nuggets[i]
  25.  
  26. # at the beginning n is lowest possible nuggets size
  27. n =  nuggets[0]
  28. count = 1
  29. for i in range(1,len(nuggets)-1):
  30.   # we add + 1 to counter if next number is following after current
  31.   if n + 1 == nuggets[i]:
  32.     count += 1
  33.   else:
  34.     count = 1
  35.   n = nuggets[i]
  36.   # if next number follows current one 6 times we got answer
  37.   if count == 6:
  38.     print n-6
  39.     break
  40.   n = nuggets[i]
  41.  
  42.  
Advertisement
Add Comment
Please, Sign In to add comment