#!/usr/bin/env python3 import numpy as np from functools import reduce # filename = "in/day04.ref" filename = "in/day04.pzl" res1 = 0 res2 = 0 res1 = sum([1 for (ps,pe),(ds,de) in [[[int(n) for n in two.split('-')] for two in line.strip().split(',')] for line in open(filename)] if (ps<=ds and pe>=de)or(ps>=ds and pe<=de)]) print('res1:', res1) res1 = sum([1 for a,b in [np.array([line.strip().split(",")[0].split("-"), line.strip().split(",")[1].split("-")], dtype = int) for line in open(filename)] if reduce(lambda a,b:a*b,np.sign(b-a)) <= 0]) print('res1:', res1) res2 = sum([1 for (ps,pe),(ds,de) in [[[int(n) for n in two.split('-')] for two in line.strip().split(',')] for line in open(filename)] if (ds<=pe<=de)or(ps<=de<=pe)]) print('res2:', res2)