02.py
1 from lib import * 2 3 input = read_input(2019, 2) 4 5 (*mem,) = map(int, input.strip().split(",")) 6 i = 0 7 mem[1] = 12 8 mem[2] = 2 9 while i < len(mem): 10 if mem[i] == 99: 11 break 12 elif mem[i] == 1: 13 mem[mem[i + 3]] = mem[mem[i + 1]] + mem[mem[i + 2]] 14 elif mem[i] == 2: 15 mem[mem[i + 3]] = mem[mem[i + 1]] * mem[mem[i + 2]] 16 i += 4 17 print(mem[0]) 18 (*mem,) = map(int, input.strip().split(",")) 19 20 21 def simulate(a, b, mem): 22 i = 0 23 mem[1] = a 24 mem[2] = b 25 while i < len(mem): 26 if mem[i] == 99: 27 break 28 elif mem[i] == 1: 29 mem[mem[i + 3]] = mem[mem[i + 1]] + mem[mem[i + 2]] 30 elif mem[i] == 2: 31 mem[mem[i + 3]] = mem[mem[i + 1]] * mem[mem[i + 2]] 32 i += 4 33 return mem[0] 34 35 36 print(*[a * 100 + b for a in range(100) for b in range(100) if simulate(a, b, mem[:]) == 19690720])