USING: grouping io.encodings.utf8 io.files kernel math.intervals math.parser sequences splitting ; IN: aoc.4 : split-pair ( pair -- x y ) [ first ] [ last ] bi ; : input ( -- input ) "~/factor/aoc/4/4.in" utf8 file-lines [ "-," split [ dec> ] map 2 [ split-pair [a,b] ] map ] map ; : fully-contains? ( {i1,i2} -- ? ) dup split-pair interval-union swap member? ; : part1 ( -- n ) input [ fully-contains? ] count ; : part2 ( -- n ) input [ split-pair intervals-intersect? ] count ;