/ Python / 2016 / 09.py
09.py
 1  from lib import *
 2  
 3  input = read_input(2016, 9).strip()
 4  
 5  out = 0
 6  i = 0
 7  while i < len(input):
 8      if input[i] == "(":
 9          x = input[i + 1 :].split(")")[0]
10          a, b = map(int, x.split("x"))
11          i += len(x) + 2
12          out += b * min(a, len(input) - i)
13          i += a
14          continue
15      out += 1
16      i += 1
17  
18  print(out)
19  
20  
21  def solve(inp):
22      out = 0
23      i = 0
24      while i < len(inp):
25          if inp[i] == "(":
26              x = inp[i + 1 :].split(")")[0]
27              a, b = map(int, x.split("x"))
28              i += len(x) + 2
29              out += b * solve(inp[i : i + a])
30              i += a
31              continue
32          out += 1
33          i += 1
34      return out
35  
36  
37  print(solve(input))