# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1513265798 18000 # Node ID 817954f71d53b8d63c19052bc297e565725df18c # Parent 56b75b62d5913a834473ab3518a87631b85ef363 day 13: cache a calculation for speed diff --git a/2017/day13.d b/2017/day13.d --- a/2017/day13.d +++ b/2017/day13.d @@ -5,7 +5,7 @@ import std.array: array; auto getHits(T)(T firewall, int init = 0) { - return firewall.filter!(xy => (init + xy[0]) % (2*(xy[1]-1)) == 0); + return firewall.filter!(xy => (init + xy[0]) % xy[2] == 0); } auto computeSeverity(T)(T firewall) { @@ -22,7 +22,10 @@ void main(string[] args) { auto firewall = File(args[1]).byLineCopy.map!( - x => x.split(": ").map!(to!int) + function(string x){ + auto v = x.split(": ").map!(to!int); + return v.array ~ (2*v[1] - 2); + } ).array; writeln(firewall.computeSeverity); writeln(firewall.findPassing);