From 76933fddfe8deb9d18c40ea974bbe71bbc7dd319 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 15 Dec 2020 20:23:31 +0100 Subject: day14 --- day14.ijs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 day14.ijs (limited to 'day14.ijs') diff --git a/day14.ijs b/day14.ijs new file mode 100644 index 0000000..76f788d --- /dev/null +++ b/day14.ijs @@ -0,0 +1,41 @@ +load 'aoc.ijs' +load 'regex' + +land =: 23 b. +lor =: 17 b. + +part1 =: 3 : 0 +mem =. 1 $. (2^16);0;0 +for_l. lines 'day14' do. + if. 'mask' rxin >l do. + mask =. 7 }. >l + maska =. #. -. '1' i. mask + maskb =. #. '0' i. mask + else. + 'addr val' =. ". every '\d+' rxall >l + mem =. mem addr }~ maskb lor maska land val + end. +end. ++/ 5 $. mem +) +part1'' NB. 7997531787333 + + +masked =: 4 : 0 +m =. x='X' +(#. (x='1') +."1 (#: i. 2^+/m) (I. m)}"1 1 m) land y lor #. x='0' +) + +part2 =: 3 : 0 +mem =. 1 $. (2^36);0;0 +for_l. lines 'day14' do. + if. 'mask' rxin >l do. + mask =. 7 }. >l + else. + 'addr val' =. ". every '\d+' rxall >l + mem =. mem (mask masked addr) }~ val + end. +end. ++/ 5 $. mem +) +part2'' NB. 3564822193820 -- cgit 1.4.1