View difference between Paste ID: TuyPzPBb and xRK2ZWVz
SHOW: | | - or go back to the newest paste.
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 remove duplicates
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