#!/usr/bin/env python3 import sys from functools import cmp_to_key if __name__ == '__main__': lines = [line.strip('\n') for line in open(sys.argv[1])] rules = [tuple([int(y) for y in x.split('|')]) for x in lines[:lines.index('')]] updates = [[int(x) for x in line.split(',')] for line in lines[lines.index('')+1:]] def compare(a,b): for rule in rules: if a in rule and b in rule: return -1 if a == rule[0] else 1 return 0 res1, res2 = 0, 0 for update in updates: correct = True for i, u in enumerate(update): for u2 in update[i+1:]: if compare(u,u2) == 1: correct = False break if not correct: update.sort(key=cmp_to_key(compare)) res2 += update[int(len(update)/2)] break if correct: res1 += update[int(len(update)/2)] # challenge 1 print(f"challenge 1:\n{res1}\n") # challenge 2 print(f"challenge 2:\n{res2}")