diff options
author | Leah Neukirchen <leah@vuxu.org> | 2020-12-15 20:23:31 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2020-12-15 20:23:31 +0100 |
commit | 76933fddfe8deb9d18c40ea974bbe71bbc7dd319 (patch) | |
tree | 6377b66a2068d358ba1ea4d36a58a46893ea9393 /day14.ijs | |
parent | d58d88e5c3563e50897a3c7b1cbd16b6e3ed38c9 (diff) | |
download | adventofcode2020-76933fddfe8deb9d18c40ea974bbe71bbc7dd319.tar.gz adventofcode2020-76933fddfe8deb9d18c40ea974bbe71bbc7dd319.tar.xz adventofcode2020-76933fddfe8deb9d18c40ea974bbe71bbc7dd319.zip |
day14
Diffstat (limited to 'day14.ijs')
-rw-r--r-- | day14.ijs | 41 |
1 files changed, 41 insertions, 0 deletions
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 |