diff options
| -rw-r--r-- | 13.py | 8 | 
1 files changed, 3 insertions, 5 deletions
@@ -1,13 +1,14 @@  from utils import open_day  from ast import literal_eval  from functools import cmp_to_key +from itertools import chain  with open_day(13) as f:      pairs = [tuple(literal_eval(v) for v in p.split('\n')) for p in f.read().rstrip().split('\n\n')]  def compare(l, r):      match (l, r): -        case ([*l], [*r]): +        case (  [*l],   [*r]):              for a, b in zip(l, r):                  cmp = compare(a,  b)                  if cmp != 0: return cmp @@ -22,9 +23,6 @@ for i, (l, r) in enumerate(pairs):      if cmp < 0: p1 += i + 1  print(p1) -p2 = [[[2]],[[6]]] -for l, r in pairs: -    p2.append(l) -    p2.append(r) +p2 = [[[2]], [[6]], *chain.from_iterable(pairs)]  p2.sort(key=cmp_to_key(compare))  print((p2.index([[2]]) + 1) * (p2.index([[6]]) + 1))  | 
