parent
44edcbac1a
commit
c1cae2ec6d
@ -0,0 +1,44 @@
|
|||||||
|
rules, updates = DATA.read.split("\n\n")
|
||||||
|
|
||||||
|
rules = rules.scan(/(\d+)\|(\d+)/).map { _1.map(&:to_i) }
|
||||||
|
updates = updates.lines.map { _1.split(?,).map(&:to_i) }
|
||||||
|
|
||||||
|
correct, incorrect = updates.partition {|pages|
|
||||||
|
pages.each_cons(2).all? { rules.include?(_1) }
|
||||||
|
}
|
||||||
|
|
||||||
|
pp correct.sum { _1[_1.length/2] }
|
||||||
|
|
||||||
|
pp incorrect.map {|pages|
|
||||||
|
pages.sort {|a,b| rules.include?([a,b]) ? -1 : 1 }
|
||||||
|
}.sum { _1[_1.length/2] }
|
||||||
|
|
||||||
|
__END__
|
||||||
|
47|53
|
||||||
|
97|13
|
||||||
|
97|61
|
||||||
|
97|47
|
||||||
|
75|29
|
||||||
|
61|13
|
||||||
|
75|53
|
||||||
|
29|13
|
||||||
|
97|29
|
||||||
|
53|29
|
||||||
|
61|53
|
||||||
|
97|53
|
||||||
|
61|29
|
||||||
|
47|13
|
||||||
|
75|47
|
||||||
|
97|75
|
||||||
|
47|61
|
||||||
|
75|61
|
||||||
|
47|29
|
||||||
|
75|13
|
||||||
|
53|13
|
||||||
|
|
||||||
|
75,47,61,53,29
|
||||||
|
97,61,53,29,13
|
||||||
|
75,29,13
|
||||||
|
75,97,47,61,53
|
||||||
|
61,13,29
|
||||||
|
97,13,75,29,47
|
Loading…
Reference in new issue