lines = open("input.txt", 'r').read().splitlines() di = { ('(', ')', 3, 1), ('[', ']', 57, 2), ('{', '}', 1197, 3), ('<', '>', 25137, 4) } score1 = 0 score2 = [] for l in lines: stack = [] valid = True for c in l: if c == '(' or c == '[' or c == '{' or c == '<': stack.append(c) if c == ')' or c == ']' or c == '}' or c == '>': match = [x for x in di if x[1] == c][0] if stack.pop() != match[0]: score1 += match[2] valid = False break if valid: if stack == []: break score = 0 while stack != []: cha = stack.pop() score = score * 5 + [x for x in di if x[0] == cha][0][3] score2.append(score) print(score1) score2.sort() print(score2[(int)(len(score2)/2)])