summaryrefslogtreecommitdiff
path: root/2024/03/python.py
blob: f45658016e128fec6c80e438ca302366d39de0b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python3

import re
from fileinput import input

s = "\n".join(input())

silver = sum(int(x) * int(y) for x, y in re.findall(r"mul\((\d{1,3}),(\d{1,3})\)", s))

gold = 0
active = True
for g in re.findall(r"(?:mul\((\d{1,3}),(\d{1,3})\))|(don't\(\))|(do\(\))", s):
    match g, active:
        case (x, y, "", ""), True:
            gold += int(x) * int(y)
        case (_, _, "don't()", _), _:
            active = False
        case (_, _, _, "do()"), _:
            active = True


print("silver:", silver)
print("gold:", gold)