summaryrefslogtreecommitdiff
path: root/2024/03/python/main.py
blob: f5617b58877ecd855906c2b9fd6062c7de40237c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)