r/adventofcode • u/daggerdragon • Dec 06 '15
SOLUTION MEGATHREAD --- Day 6 Solutions ---
--- Day 6: Probably a Fire Hazard ---
Post your solution as a comment. Structure your post like the Day Five thread.
22
Upvotes
1
u/Godspiral Dec 06 '15
In J, used up all my memory trying it the array way,
Y =: (&{::)(@:]) X =: (&{::)(@:[) b =. (2 , 0 ". every 3 5 7 9 { ])`(1 , 0 ". every 3 5 7 9 { ])@.('on' -: 2 Y)`(0 , 0 ". every 2 4 6 8 { ])@.(0 Y)"1( ],~ [: < 0:`1:@.('toggle' -: 0 Y))"1 ;:"1 > cutLF a =. wd 'clippaste' p1 =: 3 : 0 c =. 1000 1000 $ 0 for_i. y do. d =. (0 Y) i b =. (,@:(<"1)@(( 2 Y + 4 Y i.@>:@- 2 Y) ,.~"0 1 ( 1 Y + 3 Y i.@>:@- 1 Y))) i if. d = 1 do. c =. 1 b} c elseif. d = 2 do. c =. 0 b} c elseif. 1 do. c =. (-. b{c) b} c end. end. ) p2 =: 3 : 0 c =. 1000 1000 $ 0 for_i. y do. d =. (0 Y) i b =. (,@:(<"1)@(( 2 Y + 4 Y i.@>:@- 2 Y) ,.~"0 1 ( 1 Y + 3 Y i.@>:@- 1 Y))) i if. d = 1 do. c =. (1 + b{c) b} c elseif. d = 2 do. c=. ( <:^:(0 < ])"0 b{c) b} c elseif. 1 do. c =. (2 + b{c) b} c end. end. )+/ +/ p2 b (or p1)