Files
2021-12-14 21:06:45 +03:00

49 lines
828 B
Python

with open("input") as f:
data = f.read().strip().split('\n')
scores = {
')': 3,
']': 57,
'}': 1197,
'>': 25137,
}
opens = {
')': '(',
']': '[',
'}': '{',
'>': '<',
}
closings = {v: k for k, v in opens.items()}
second_scores = {
')': 1,
']': 2,
'}': 3,
'>': 4,
}
s = 0
ss = []
for line in data:
parens = []
for c in line:
if c in scores:
if opens[c] != parens[-1]:
s += scores[c]
break
else:
parens.pop()
else:
parens.append(c)
else:
if parens:
x = 0
for p in reversed(parens):
x = x*5 + second_scores[closings[p]]
ss.append(x)
print(s)
print(sorted(ss)[len(ss)//2])