diff --git a/p14/input b/p14/input new file mode 100644 index 0000000..f10d1d7 --- /dev/null +++ b/p14/input @@ -0,0 +1,500 @@ +p=77,59 v=2,-23 +p=77,53 v=-90,9 +p=85,100 v=-90,-77 +p=22,57 v=82,-94 +p=84,72 v=-39,60 +p=57,76 v=14,-94 +p=2,92 v=-52,-63 +p=38,73 v=42,-39 +p=4,93 v=-93,41 +p=79,56 v=27,-13 +p=20,5 v=-10,-68 +p=51,94 v=38,-2 +p=15,5 v=-93,-68 +p=4,49 v=56,6 +p=37,78 v=1,63 +p=46,60 v=-18,70 +p=19,47 v=-96,54 +p=79,83 v=21,-26 +p=77,59 v=82,-86 +p=27,40 v=-51,24 +p=84,68 v=-88,-72 +p=59,60 v=-22,18 +p=66,67 v=-88,24 +p=64,101 v=-67,86 +p=13,44 v=-53,-68 +p=44,53 v=-80,34 +p=31,71 v=27,-25 +p=98,71 v=90,78 +p=25,60 v=-19,-47 +p=64,59 v=-56,-16 +p=67,23 v=-63,72 +p=85,36 v=-99,-5 +p=89,64 v=-81,-13 +p=71,33 v=-7,-18 +p=30,75 v=27,74 +p=51,86 v=42,50 +p=35,3 v=-41,17 +p=67,7 v=52,44 +p=71,6 v=-40,21 +p=49,51 v=-18,-32 +p=77,22 v=-95,86 +p=72,16 v=-49,63 +p=96,11 v=-38,7 +p=26,44 v=82,-4 +p=36,5 v=42,24 +p=20,13 v=45,30 +p=47,23 v=8,-87 +p=24,99 v=13,-77 +p=2,66 v=58,70 +p=61,86 v=99,81 +p=42,67 v=20,80 +p=69,80 v=1,-15 +p=1,10 v=85,-55 +p=68,95 v=-16,16 +p=87,16 v=2,-17 +p=71,27 v=-73,14 +p=36,57 v=-82,83 +p=0,6 v=21,68 +p=41,67 v=-41,-99 +p=52,60 v=-52,-47 +p=11,32 v=-93,34 +p=31,27 v=64,53 +p=52,84 v=-73,36 +p=2,85 v=-62,46 +p=40,54 v=-97,-61 +p=59,58 v=-22,-70 +p=64,23 v=-87,-15 +p=42,34 v=-36,-44 +p=43,42 v=37,82 +p=40,75 v=-13,98 +p=65,18 v=38,-17 +p=53,51 v=-17,-70 +p=62,5 v=-91,7 +p=75,28 v=-19,-43 +p=87,101 v=-16,-2 +p=99,56 v=58,84 +p=69,101 v=89,-77 +p=5,12 v=91,-97 +p=34,35 v=-14,62 +p=52,87 v=85,-33 +p=18,13 v=86,-40 +p=51,37 v=55,61 +p=57,94 v=-13,-44 +p=87,100 v=-3,-13 +p=22,2 v=25,38 +p=8,97 v=-43,30 +p=55,27 v=14,-59 +p=33,13 v=68,-32 +p=97,55 v=-18,-14 +p=33,60 v=45,60 +p=88,29 v=-99,-31 +p=84,93 v=66,66 +p=28,83 v=31,27 +p=32,52 v=-69,-14 +p=100,93 v=80,92 +p=72,87 v=44,-32 +p=74,61 v=11,-52 +p=39,67 v=-14,37 +p=67,92 v=-17,-91 +p=26,26 v=38,-55 +p=50,15 v=19,36 +p=52,57 v=46,50 +p=78,19 v=48,-78 +p=56,42 v=-68,15 +p=43,17 v=14,48 +p=5,17 v=-94,95 +p=56,13 v=-49,7 +p=41,66 v=92,-1 +p=9,82 v=44,-10 +p=92,33 v=-16,66 +p=55,92 v=-45,50 +p=72,76 v=-68,-85 +p=40,69 v=4,-85 +p=29,84 v=54,8 +p=53,42 v=-27,-4 +p=32,80 v=-44,66 +p=87,3 v=53,-86 +p=0,48 v=-24,14 +p=76,84 v=25,55 +p=27,17 v=-14,72 +p=38,68 v=-82,54 +p=60,91 v=47,12 +p=74,17 v=-90,-73 +p=87,79 v=75,97 +p=73,70 v=-33,76 +p=21,83 v=66,17 +p=14,29 v=12,29 +p=61,38 v=-40,15 +p=0,59 v=-86,3 +p=27,19 v=27,-13 +p=14,37 v=4,14 +p=97,17 v=2,-59 +p=66,80 v=-99,85 +p=1,28 v=49,95 +p=28,99 v=4,7 +p=81,34 v=11,1 +p=8,63 v=67,33 +p=77,20 v=-79,-34 +p=76,92 v=66,-40 +p=1,54 v=3,-56 +p=15,66 v=73,-21 +p=86,45 v=33,-95 +p=94,35 v=59,-49 +p=22,9 v=-10,-3 +p=34,69 v=18,14 +p=99,45 v=12,89 +p=86,34 v=94,94 +p=87,16 v=91,70 +p=55,24 v=-48,-21 +p=75,44 v=-35,66 +p=85,77 v=66,-80 +p=30,72 v=60,98 +p=3,30 v=-86,-18 +p=24,60 v=-61,-10 +p=34,88 v=41,-20 +p=0,54 v=-66,28 +p=85,69 v=69,-5 +p=52,24 v=-60,3 +p=90,95 v=22,-81 +p=9,90 v=-75,59 +p=78,78 v=-76,-90 +p=66,61 v=-95,32 +p=24,70 v=-56,-71 +p=89,48 v=-80,-98 +p=74,7 v=-61,77 +p=51,66 v=-50,-1 +p=90,37 v=-58,20 +p=46,49 v=5,98 +p=95,0 v=57,-58 +p=44,6 v=79,-31 +p=41,53 v=-45,-2 +p=9,23 v=-6,-27 +p=35,69 v=-92,-99 +p=59,39 v=-30,-76 +p=23,36 v=-44,-82 +p=61,39 v=-39,-68 +p=3,3 v=-51,40 +p=23,79 v=-19,-11 +p=49,83 v=47,40 +p=84,64 v=-39,56 +p=57,91 v=19,17 +p=60,43 v=-73,73 +p=54,16 v=51,72 +p=54,10 v=-92,-99 +p=48,62 v=42,84 +p=45,42 v=42,-18 +p=72,99 v=86,48 +p=39,76 v=-9,-57 +p=83,61 v=-85,65 +p=67,80 v=98,-90 +p=28,27 v=-70,-37 +p=68,9 v=-40,34 +p=39,5 v=78,-40 +p=10,90 v=43,-86 +p=49,29 v=-8,39 +p=79,54 v=-8,-42 +p=79,71 v=-90,69 +p=100,50 v=35,28 +p=48,84 v=14,-85 +p=58,12 v=98,-26 +p=48,26 v=35,58 +p=40,11 v=78,-50 +p=82,51 v=71,-14 +p=52,4 v=-1,-77 +p=47,102 v=14,-68 +p=16,46 v=-47,-9 +p=14,63 v=95,9 +p=83,39 v=-34,-88 +p=2,51 v=-95,77 +p=57,20 v=-9,25 +p=87,1 v=90,-11 +p=55,40 v=-95,-83 +p=96,60 v=-2,-9 +p=86,12 v=58,70 +p=54,57 v=33,37 +p=16,88 v=-91,-83 +p=56,13 v=39,-38 +p=70,21 v=84,11 +p=4,17 v=90,-17 +p=45,18 v=-50,-50 +p=77,7 v=-63,-88 +p=2,59 v=-54,-59 +p=62,81 v=-22,8 +p=72,55 v=75,-47 +p=62,55 v=32,27 +p=57,56 v=-77,-89 +p=99,61 v=-54,65 +p=73,8 v=-81,-12 +p=12,96 v=-55,15 +p=44,41 v=8,30 +p=96,53 v=35,19 +p=26,65 v=64,-38 +p=14,85 v=15,45 +p=98,3 v=-2,35 +p=3,91 v=-56,-7 +p=48,6 v=-18,-44 +p=60,98 v=33,21 +p=43,45 v=-28,-60 +p=38,71 v=-46,13 +p=71,19 v=-86,-45 +p=99,48 v=31,61 +p=58,29 v=52,-31 +p=65,94 v=52,-12 +p=22,22 v=78,-78 +p=98,62 v=83,-11 +p=76,74 v=-72,93 +p=19,82 v=-39,58 +p=72,81 v=-9,41 +p=85,92 v=-62,17 +p=10,4 v=5,-61 +p=70,49 v=-40,79 +p=4,21 v=81,-31 +p=99,8 v=67,44 +p=85,34 v=-34,-19 +p=1,31 v=19,-19 +p=71,101 v=-12,-77 +p=15,81 v=-24,-90 +p=83,79 v=-17,-52 +p=48,91 v=97,-11 +p=51,57 v=-18,-5 +p=34,25 v=-92,25 +p=50,8 v=-96,-96 +p=71,5 v=94,86 +p=16,49 v=25,-88 +p=45,2 v=-37,39 +p=43,23 v=-79,67 +p=36,41 v=-73,70 +p=42,45 v=-26,-22 +p=29,100 v=4,-55 +p=60,98 v=-40,-27 +p=57,21 v=-7,-58 +p=96,22 v=21,-60 +p=36,97 v=-43,-1 +p=1,94 v=-94,91 +p=45,60 v=-78,37 +p=27,6 v=85,-51 +p=48,12 v=64,71 +p=89,75 v=-81,8 +p=76,51 v=-21,14 +p=71,13 v=20,-13 +p=90,9 v=43,-31 +p=33,4 v=-69,31 +p=54,65 v=-31,84 +p=61,87 v=56,-67 +p=34,42 v=-92,61 +p=2,5 v=-43,58 +p=44,2 v=55,-63 +p=66,50 v=-89,76 +p=24,77 v=-95,-71 +p=15,11 v=97,-88 +p=95,58 v=6,14 +p=70,72 v=-8,-57 +p=30,84 v=68,44 +p=8,67 v=-84,-19 +p=54,44 v=-59,-91 +p=69,42 v=-8,-93 +p=40,27 v=-18,-13 +p=17,38 v=-20,-93 +p=79,37 v=66,-51 +p=77,10 v=52,48 +p=18,77 v=85,71 +p=45,2 v=48,15 +p=93,98 v=26,53 +p=97,57 v=44,52 +p=91,80 v=94,83 +p=71,54 v=-5,91 +p=32,33 v=87,76 +p=21,59 v=31,56 +p=76,78 v=-30,-66 +p=39,45 v=-87,90 +p=46,84 v=-50,-76 +p=65,102 v=-77,-30 +p=5,46 v=-75,-84 +p=5,33 v=-94,6 +p=6,50 v=-51,-94 +p=74,26 v=-58,-27 +p=29,62 v=26,-32 +p=18,89 v=87,-63 +p=66,31 v=-94,46 +p=23,27 v=-42,67 +p=47,36 v=-87,-88 +p=11,92 v=-75,-76 +p=9,51 v=-1,19 +p=52,0 v=28,-35 +p=68,72 v=-63,10 +p=41,46 v=-32,75 +p=99,42 v=99,94 +p=98,29 v=3,45 +p=61,69 v=-45,-52 +p=50,66 v=66,8 +p=3,41 v=40,71 +p=83,45 v=-85,-23 +p=0,34 v=3,-93 +p=54,49 v=88,-23 +p=65,50 v=57,-38 +p=37,34 v=38,-86 +p=100,77 v=13,-23 +p=80,39 v=-13,32 +p=31,102 v=-1,16 +p=62,64 v=15,9 +p=48,13 v=-73,-87 +p=69,19 v=-95,16 +p=50,89 v=75,-85 +p=45,33 v=-96,-37 +p=13,75 v=77,60 +p=17,43 v=91,-41 +p=17,99 v=45,-86 +p=68,20 v=40,66 +p=47,11 v=-37,-12 +p=64,85 v=56,2 +p=46,30 v=92,43 +p=84,57 v=-99,-14 +p=55,18 v=46,-46 +p=42,87 v=64,-34 +p=94,96 v=57,16 +p=20,14 v=-24,2 +p=52,44 v=33,-9 +p=4,95 v=7,-76 +p=99,25 v=-74,87 +p=78,31 v=95,-69 +p=79,21 v=-55,32 +p=20,25 v=68,15 +p=77,102 v=2,-82 +p=45,29 v=-91,-31 +p=10,55 v=19,55 +p=74,0 v=75,-92 +p=38,64 v=-23,70 +p=10,99 v=58,-65 +p=8,73 v=97,41 +p=43,26 v=32,66 +p=73,96 v=20,-91 +p=30,27 v=-81,77 +p=13,0 v=-38,-82 +p=18,37 v=-42,15 +p=57,40 v=19,43 +p=25,68 v=82,32 +p=10,2 v=-80,-59 +p=0,85 v=12,-86 +p=60,18 v=68,21 +p=39,86 v=-69,-53 +p=98,0 v=26,-35 +p=58,17 v=1,-69 +p=38,44 v=-65,-86 +p=24,28 v=-47,-45 +p=20,27 v=9,-23 +p=0,65 v=77,-15 +p=95,71 v=94,78 +p=68,77 v=93,55 +p=77,3 v=-42,17 +p=94,4 v=53,68 +p=97,28 v=-29,-9 +p=54,84 v=50,67 +p=81,70 v=21,-52 +p=68,10 v=46,99 +p=29,34 v=-88,-64 +p=79,77 v=80,-6 +p=54,66 v=-13,-52 +p=67,50 v=7,60 +p=20,1 v=32,-96 +p=29,4 v=-83,49 +p=70,35 v=70,-13 +p=59,40 v=-22,80 +p=73,47 v=-3,66 +p=88,13 v=85,-36 +p=21,80 v=55,64 +p=37,28 v=-32,-97 +p=88,0 v=98,73 +p=68,59 v=29,-14 +p=90,87 v=62,31 +p=76,13 v=11,-31 +p=19,23 v=44,97 +p=25,46 v=77,-66 +p=95,41 v=70,-63 +p=4,11 v=35,-54 +p=83,30 v=-23,-31 +p=0,26 v=-97,53 +p=29,96 v=73,21 +p=5,51 v=81,28 +p=85,41 v=-62,-37 +p=60,22 v=-45,-13 +p=96,27 v=81,80 +p=46,37 v=-73,71 +p=46,30 v=65,19 +p=79,98 v=-12,-63 +p=99,33 v=-95,-45 +p=77,47 v=-44,-27 +p=48,97 v=-18,-44 +p=77,78 v=-2,11 +p=87,52 v=-44,5 +p=4,68 v=-15,23 +p=12,47 v=-79,5 +p=5,58 v=26,-61 +p=35,30 v=-84,17 +p=45,73 v=19,-33 +p=10,102 v=-97,-49 +p=70,67 v=75,9 +p=42,34 v=9,-41 +p=12,37 v=75,39 +p=1,5 v=-66,96 +p=78,60 v=-48,-5 +p=3,81 v=40,-15 +p=64,51 v=20,-23 +p=19,27 v=91,44 +p=66,4 v=43,40 +p=54,20 v=43,-17 +p=19,51 v=54,19 +p=97,70 v=-15,-47 +p=63,91 v=-6,-43 +p=72,50 v=-72,14 +p=48,29 v=70,86 +p=69,19 v=-26,95 +p=36,36 v=50,76 +p=51,2 v=-50,-54 +p=24,39 v=-78,-18 +p=50,89 v=65,-2 +p=27,34 v=-51,-65 +p=0,48 v=-7,-80 +p=12,58 v=8,51 +p=0,86 v=26,82 +p=15,92 v=-79,-40 +p=59,69 v=37,-62 +p=17,72 v=10,28 +p=76,42 v=-90,99 +p=59,45 v=-22,32 +p=59,45 v=-31,-51 +p=98,32 v=-29,47 +p=15,89 v=-1,-58 +p=23,90 v=22,36 +p=31,91 v=50,50 +p=20,69 v=-1,27 +p=18,80 v=36,74 +p=39,45 v=82,-88 +p=42,44 v=37,5 +p=37,69 v=-64,-80 +p=32,70 v=55,32 +p=96,102 v=62,12 +p=48,42 v=-76,-41 +p=47,65 v=14,-6 +p=27,97 v=25,12 +p=55,69 v=-55,22 +p=17,76 v=1,-61 +p=43,28 v=28,6 +p=29,25 v=73,-41 +p=64,10 v=34,-96 +p=63,41 v=93,15 +p=3,9 v=-52,77 +p=61,100 v=43,-5 +p=54,24 v=6,-79 +p=89,75 v=44,-85 +p=79,61 v=-90,-94 +p=99,102 v=-70,35 +p=39,65 v=-78,4 +p=5,19 v=63,71 +p=93,101 v=35,-44 +p=5,26 v=31,-80 +p=27,51 v=80,37 +p=62,88 v=-51,-77 +p=75,71 v=-12,27 +p=74,45 v=66,33 +p=22,42 v=34,67 \ No newline at end of file diff --git a/p14/input-test b/p14/input-test new file mode 100644 index 0000000..72a324a --- /dev/null +++ b/p14/input-test @@ -0,0 +1,12 @@ +p=0,4 v=3,-3 +p=6,3 v=-1,-3 +p=10,3 v=-1,2 +p=2,0 v=2,-1 +p=0,0 v=1,3 +p=3,0 v=-2,-2 +p=7,6 v=-1,-3 +p=3,0 v=-1,-2 +p=9,3 v=2,3 +p=7,3 v=-1,2 +p=2,4 v=2,-3 +p=9,5 v=-3,-3 \ No newline at end of file diff --git a/p14/p14.org b/p14/p14.org new file mode 100644 index 0000000..a02c0d4 --- /dev/null +++ b/p14/p14.org @@ -0,0 +1,545 @@ +#+title: Solution to p14 +First parse with regex to make into a list +#+begin_src emacs-lisp + (require 'dash) + (with-temp-buffer + (insert-file-contents "input") + (goto-char (point-min)) + (replace-regexp "p=\\([-0-9]+\\),\\([-0-9]+\\) v=\\([-0-9]+\\),\\([-0-9]+\\)" + "((\\1 \\2) (\\3 \\4))") + (goto-char (point-min)) + (insert "(setq data '(") + (goto-char (point-max)) + (insert "))") + (eval-buffer)) + (setq h 103 + w 101) + (print data) + #+end_src + + #+RESULTS: + | (77 59) | (2 -23) | + | (77 53) | (-90 9) | + | (85 100) | (-90 -77) | + | (22 57) | (82 -94) | + | (84 72) | (-39 60) | + | (57 76) | (14 -94) | + | (2 92) | (-52 -63) | + | (38 73) | (42 -39) | + | (4 93) | (-93 41) | + | (79 56) | (27 -13) | + | (20 5) | (-10 -68) | + | (51 94) | (38 -2) | + | (15 5) | (-93 -68) | + | (4 49) | (56 6) | + | (37 78) | (1 63) | + | (46 60) | (-18 70) | + | (19 47) | (-96 54) | + | (79 83) | (21 -26) | + | (77 59) | (82 -86) | + | (27 40) | (-51 24) | + | (84 68) | (-88 -72) | + | (59 60) | (-22 18) | + | (66 67) | (-88 24) | + | (64 101) | (-67 86) | + | (13 44) | (-53 -68) | + | (44 53) | (-80 34) | + | (31 71) | (27 -25) | + | (98 71) | (90 78) | + | (25 60) | (-19 -47) | + | (64 59) | (-56 -16) | + | (67 23) | (-63 72) | + | (85 36) | (-99 -5) | + | (89 64) | (-81 -13) | + | (71 33) | (-7 -18) | + | (30 75) | (27 74) | + | (51 86) | (42 50) | + | (35 3) | (-41 17) | + | (67 7) | (52 44) | + | (71 6) | (-40 21) | + | (49 51) | (-18 -32) | + | (77 22) | (-95 86) | + | (72 16) | (-49 63) | + | (96 11) | (-38 7) | + | (26 44) | (82 -4) | + | (36 5) | (42 24) | + | (20 13) | (45 30) | + | (47 23) | (8 -87) | + | (24 99) | (13 -77) | + | (2 66) | (58 70) | + | (61 86) | (99 81) | + | (42 67) | (20 80) | + | (69 80) | (1 -15) | + | (1 10) | (85 -55) | + | (68 95) | (-16 16) | + | (87 16) | (2 -17) | + | (71 27) | (-73 14) | + | (36 57) | (-82 83) | + | (0 6) | (21 68) | + | (41 67) | (-41 -99) | + | (52 60) | (-52 -47) | + | (11 32) | (-93 34) | + | (31 27) | (64 53) | + | (52 84) | (-73 36) | + | (2 85) | (-62 46) | + | (40 54) | (-97 -61) | + | (59 58) | (-22 -70) | + | (64 23) | (-87 -15) | + | (42 34) | (-36 -44) | + | (43 42) | (37 82) | + | (40 75) | (-13 98) | + | (65 18) | (38 -17) | + | (53 51) | (-17 -70) | + | (62 5) | (-91 7) | + | (75 28) | (-19 -43) | + | (87 101) | (-16 -2) | + | (99 56) | (58 84) | + | (69 101) | (89 -77) | + | (5 12) | (91 -97) | + | (34 35) | (-14 62) | + | (52 87) | (85 -33) | + | (18 13) | (86 -40) | + | (51 37) | (55 61) | + | (57 94) | (-13 -44) | + | (87 100) | (-3 -13) | + | (22 2) | (25 38) | + | (8 97) | (-43 30) | + | (55 27) | (14 -59) | + | (33 13) | (68 -32) | + | (97 55) | (-18 -14) | + | (33 60) | (45 60) | + | (88 29) | (-99 -31) | + | (84 93) | (66 66) | + | (28 83) | (31 27) | + | (32 52) | (-69 -14) | + | (100 93) | (80 92) | + | (72 87) | (44 -32) | + | (74 61) | (11 -52) | + | (39 67) | (-14 37) | + | (67 92) | (-17 -91) | + | (26 26) | (38 -55) | + | (50 15) | (19 36) | + | (52 57) | (46 50) | + | (78 19) | (48 -78) | + | (56 42) | (-68 15) | + | (43 17) | (14 48) | + | (5 17) | (-94 95) | + | (56 13) | (-49 7) | + | (41 66) | (92 -1) | + | (9 82) | (44 -10) | + | (92 33) | (-16 66) | + | (55 92) | (-45 50) | + | (72 76) | (-68 -85) | + | (40 69) | (4 -85) | + | (29 84) | (54 8) | + | (53 42) | (-27 -4) | + | (32 80) | (-44 66) | + | (87 3) | (53 -86) | + | (0 48) | (-24 14) | + | (76 84) | (25 55) | + | (27 17) | (-14 72) | + | (38 68) | (-82 54) | + | (60 91) | (47 12) | + | (74 17) | (-90 -73) | + | (87 79) | (75 97) | + | (73 70) | (-33 76) | + | (21 83) | (66 17) | + | (14 29) | (12 29) | + | (61 38) | (-40 15) | + | (0 59) | (-86 3) | + | (27 19) | (27 -13) | + | (14 37) | (4 14) | + | (97 17) | (2 -59) | + | (66 80) | (-99 85) | + | (1 28) | (49 95) | + | (28 99) | (4 7) | + | (81 34) | (11 1) | + | (8 63) | (67 33) | + | (77 20) | (-79 -34) | + | (76 92) | (66 -40) | + | (1 54) | (3 -56) | + | (15 66) | (73 -21) | + | (86 45) | (33 -95) | + | (94 35) | (59 -49) | + | (22 9) | (-10 -3) | + | (34 69) | (18 14) | + | (99 45) | (12 89) | + | (86 34) | (94 94) | + | (87 16) | (91 70) | + | (55 24) | (-48 -21) | + | (75 44) | (-35 66) | + | (85 77) | (66 -80) | + | (30 72) | (60 98) | + | (3 30) | (-86 -18) | + | (24 60) | (-61 -10) | + | (34 88) | (41 -20) | + | (0 54) | (-66 28) | + | (85 69) | (69 -5) | + | (52 24) | (-60 3) | + | (90 95) | (22 -81) | + | (9 90) | (-75 59) | + | (78 78) | (-76 -90) | + | (66 61) | (-95 32) | + | (24 70) | (-56 -71) | + | (89 48) | (-80 -98) | + | (74 7) | (-61 77) | + | (51 66) | (-50 -1) | + | (90 37) | (-58 20) | + | (46 49) | (5 98) | + | (95 0) | (57 -58) | + | (44 6) | (79 -31) | + | (41 53) | (-45 -2) | + | (9 23) | (-6 -27) | + | (35 69) | (-92 -99) | + | (59 39) | (-30 -76) | + | (23 36) | (-44 -82) | + | (61 39) | (-39 -68) | + | (3 3) | (-51 40) | + | (23 79) | (-19 -11) | + | (49 83) | (47 40) | + | (84 64) | (-39 56) | + | (57 91) | (19 17) | + | (60 43) | (-73 73) | + | (54 16) | (51 72) | + | (54 10) | (-92 -99) | + | (48 62) | (42 84) | + | (45 42) | (42 -18) | + | (72 99) | (86 48) | + | (39 76) | (-9 -57) | + | (83 61) | (-85 65) | + | (67 80) | (98 -90) | + | (28 27) | (-70 -37) | + | (68 9) | (-40 34) | + | (39 5) | (78 -40) | + | (10 90) | (43 -86) | + | (49 29) | (-8 39) | + | (79 54) | (-8 -42) | + | (79 71) | (-90 69) | + | (100 50) | (35 28) | + | (48 84) | (14 -85) | + | (58 12) | (98 -26) | + | (48 26) | (35 58) | + | (40 11) | (78 -50) | + | (82 51) | (71 -14) | + | (52 4) | (-1 -77) | + | (47 102) | (14 -68) | + | (16 46) | (-47 -9) | + | (14 63) | (95 9) | + | (83 39) | (-34 -88) | + | (2 51) | (-95 77) | + | (57 20) | (-9 25) | + | (87 1) | (90 -11) | + | (55 40) | (-95 -83) | + | (96 60) | (-2 -9) | + | (86 12) | (58 70) | + | (54 57) | (33 37) | + | (16 88) | (-91 -83) | + | (56 13) | (39 -38) | + | (70 21) | (84 11) | + | (4 17) | (90 -17) | + | (45 18) | (-50 -50) | + | (77 7) | (-63 -88) | + | (2 59) | (-54 -59) | + | (62 81) | (-22 8) | + | (72 55) | (75 -47) | + | (62 55) | (32 27) | + | (57 56) | (-77 -89) | + | (99 61) | (-54 65) | + | (73 8) | (-81 -12) | + | (12 96) | (-55 15) | + | (44 41) | (8 30) | + | (96 53) | (35 19) | + | (26 65) | (64 -38) | + | (14 85) | (15 45) | + | (98 3) | (-2 35) | + | (3 91) | (-56 -7) | + | (48 6) | (-18 -44) | + | (60 98) | (33 21) | + | (43 45) | (-28 -60) | + | (38 71) | (-46 13) | + | (71 19) | (-86 -45) | + | (99 48) | (31 61) | + | (58 29) | (52 -31) | + | (65 94) | (52 -12) | + | (22 22) | (78 -78) | + | (98 62) | (83 -11) | + | (76 74) | (-72 93) | + | (19 82) | (-39 58) | + | (72 81) | (-9 41) | + | (85 92) | (-62 17) | + | (10 4) | (5 -61) | + | (70 49) | (-40 79) | + | (4 21) | (81 -31) | + | (99 8) | (67 44) | + | (85 34) | (-34 -19) | + | (1 31) | (19 -19) | + | (71 101) | (-12 -77) | + | (15 81) | (-24 -90) | + | (83 79) | (-17 -52) | + | (48 91) | (97 -11) | + | (51 57) | (-18 -5) | + | (34 25) | (-92 25) | + | (50 8) | (-96 -96) | + | (71 5) | (94 86) | + | (16 49) | (25 -88) | + | (45 2) | (-37 39) | + | (43 23) | (-79 67) | + | (36 41) | (-73 70) | + | (42 45) | (-26 -22) | + | (29 100) | (4 -55) | + | (60 98) | (-40 -27) | + | (57 21) | (-7 -58) | + | (96 22) | (21 -60) | + | (36 97) | (-43 -1) | + | (1 94) | (-94 91) | + | (45 60) | (-78 37) | + | (27 6) | (85 -51) | + | (48 12) | (64 71) | + | (89 75) | (-81 8) | + | (76 51) | (-21 14) | + | (71 13) | (20 -13) | + | (90 9) | (43 -31) | + | (33 4) | (-69 31) | + | (54 65) | (-31 84) | + | (61 87) | (56 -67) | + | (34 42) | (-92 61) | + | (2 5) | (-43 58) | + | (44 2) | (55 -63) | + | (66 50) | (-89 76) | + | (24 77) | (-95 -71) | + | (15 11) | (97 -88) | + | (95 58) | (6 14) | + | (70 72) | (-8 -57) | + | (30 84) | (68 44) | + | (8 67) | (-84 -19) | + | (54 44) | (-59 -91) | + | (69 42) | (-8 -93) | + | (40 27) | (-18 -13) | + | (17 38) | (-20 -93) | + | (79 37) | (66 -51) | + | (77 10) | (52 48) | + | (18 77) | (85 71) | + | (45 2) | (48 15) | + | (93 98) | (26 53) | + | (97 57) | (44 52) | + | (91 80) | (94 83) | + | (71 54) | (-5 91) | + | (32 33) | (87 76) | + | (21 59) | (31 56) | + | (76 78) | (-30 -66) | + | (39 45) | (-87 90) | + | (46 84) | (-50 -76) | + | (65 102) | (-77 -30) | + | (5 46) | (-75 -84) | + | (5 33) | (-94 6) | + | (6 50) | (-51 -94) | + | (74 26) | (-58 -27) | + | (29 62) | (26 -32) | + | (18 89) | (87 -63) | + | (66 31) | (-94 46) | + | (23 27) | (-42 67) | + | (47 36) | (-87 -88) | + | (11 92) | (-75 -76) | + | (9 51) | (-1 19) | + | (52 0) | (28 -35) | + | (68 72) | (-63 10) | + | (41 46) | (-32 75) | + | (99 42) | (99 94) | + | (98 29) | (3 45) | + | (61 69) | (-45 -52) | + | (50 66) | (66 8) | + | (3 41) | (40 71) | + | (83 45) | (-85 -23) | + | (0 34) | (3 -93) | + | (54 49) | (88 -23) | + | (65 50) | (57 -38) | + | (37 34) | (38 -86) | + | (100 77) | (13 -23) | + | (80 39) | (-13 32) | + | (31 102) | (-1 16) | + | (62 64) | (15 9) | + | (48 13) | (-73 -87) | + | (69 19) | (-95 16) | + | (50 89) | (75 -85) | + | (45 33) | (-96 -37) | + | (13 75) | (77 60) | + | (17 43) | (91 -41) | + | (17 99) | (45 -86) | + | (68 20) | (40 66) | + | (47 11) | (-37 -12) | + | (64 85) | (56 2) | + | (46 30) | (92 43) | + | (84 57) | (-99 -14) | + | (55 18) | (46 -46) | + | (42 87) | (64 -34) | + | (94 96) | (57 16) | + | (20 14) | (-24 2) | + | (52 44) | (33 -9) | + | (4 95) | (7 -76) | + | (99 25) | (-74 87) | + | (78 31) | (95 -69) | + | (79 21) | (-55 32) | + | (20 25) | (68 15) | + | (77 102) | (2 -82) | + | (45 29) | (-91 -31) | + | (10 55) | (19 55) | + | (74 0) | (75 -92) | + | (38 64) | (-23 70) | + | (10 99) | (58 -65) | + | (8 73) | (97 41) | + | (43 26) | (32 66) | + | (73 96) | (20 -91) | + | (30 27) | (-81 77) | + | (13 0) | (-38 -82) | + | (18 37) | (-42 15) | + | (57 40) | (19 43) | + | (25 68) | (82 32) | + | (10 2) | (-80 -59) | + | (0 85) | (12 -86) | + | (60 18) | (68 21) | + | (39 86) | (-69 -53) | + | (98 0) | (26 -35) | + | (58 17) | (1 -69) | + | (38 44) | (-65 -86) | + | (24 28) | (-47 -45) | + | (20 27) | (9 -23) | + | (0 65) | (77 -15) | + | (95 71) | (94 78) | + | (68 77) | (93 55) | + | (77 3) | (-42 17) | + | (94 4) | (53 68) | + | (97 28) | (-29 -9) | + | (54 84) | (50 67) | + | (81 70) | (21 -52) | + | (68 10) | (46 99) | + | (29 34) | (-88 -64) | + | (79 77) | (80 -6) | + | (54 66) | (-13 -52) | + | (67 50) | (7 60) | + | (20 1) | (32 -96) | + | (29 4) | (-83 49) | + | (70 35) | (70 -13) | + | (59 40) | (-22 80) | + | (73 47) | (-3 66) | + | (88 13) | (85 -36) | + | (21 80) | (55 64) | + | (37 28) | (-32 -97) | + | (88 0) | (98 73) | + | (68 59) | (29 -14) | + | (90 87) | (62 31) | + | (76 13) | (11 -31) | + | (19 23) | (44 97) | + | (25 46) | (77 -66) | + | (95 41) | (70 -63) | + | (4 11) | (35 -54) | + | (83 30) | (-23 -31) | + | (0 26) | (-97 53) | + | (29 96) | (73 21) | + | (5 51) | (81 28) | + | (85 41) | (-62 -37) | + | (60 22) | (-45 -13) | + | (96 27) | (81 80) | + | (46 37) | (-73 71) | + | (46 30) | (65 19) | + | (79 98) | (-12 -63) | + | (99 33) | (-95 -45) | + | (77 47) | (-44 -27) | + | (48 97) | (-18 -44) | + | (77 78) | (-2 11) | + | (87 52) | (-44 5) | + | (4 68) | (-15 23) | + | (12 47) | (-79 5) | + | (5 58) | (26 -61) | + | (35 30) | (-84 17) | + | (45 73) | (19 -33) | + | (10 102) | (-97 -49) | + | (70 67) | (75 9) | + | (42 34) | (9 -41) | + | (12 37) | (75 39) | + | (1 5) | (-66 96) | + | (78 60) | (-48 -5) | + | (3 81) | (40 -15) | + | (64 51) | (20 -23) | + | (19 27) | (91 44) | + | (66 4) | (43 40) | + | (54 20) | (43 -17) | + | (19 51) | (54 19) | + | (97 70) | (-15 -47) | + | (63 91) | (-6 -43) | + | (72 50) | (-72 14) | + | (48 29) | (70 86) | + | (69 19) | (-26 95) | + | (36 36) | (50 76) | + | (51 2) | (-50 -54) | + | (24 39) | (-78 -18) | + | (50 89) | (65 -2) | + | (27 34) | (-51 -65) | + | (0 48) | (-7 -80) | + | (12 58) | (8 51) | + | (0 86) | (26 82) | + | (15 92) | (-79 -40) | + | (59 69) | (37 -62) | + | (17 72) | (10 28) | + | (76 42) | (-90 99) | + | (59 45) | (-22 32) | + | (59 45) | (-31 -51) | + | (98 32) | (-29 47) | + | (15 89) | (-1 -58) | + | (23 90) | (22 36) | + | (31 91) | (50 50) | + | (20 69) | (-1 27) | + | (18 80) | (36 74) | + | (39 45) | (82 -88) | + | (42 44) | (37 5) | + | (37 69) | (-64 -80) | + | (32 70) | (55 32) | + | (96 102) | (62 12) | + | (48 42) | (-76 -41) | + | (47 65) | (14 -6) | + | (27 97) | (25 12) | + | (55 69) | (-55 22) | + | (17 76) | (1 -61) | + | (43 28) | (28 6) | + | (29 25) | (73 -41) | + | (64 10) | (34 -96) | + | (63 41) | (93 15) | + | (3 9) | (-52 77) | + | (61 100) | (43 -5) | + | (54 24) | (6 -79) | + | (89 75) | (44 -85) | + | (79 61) | (-90 -94) | + | (99 102) | (-70 35) | + | (39 65) | (-78 4) | + | (5 19) | (63 71) | + | (93 101) | (35 -44) | + | (5 26) | (31 -80) | + | (27 51) | (80 37) | + | (62 88) | (-51 -77) | + | (75 71) | (-12 27) | + | (74 45) | (66 33) | + | (22 42) | (34 67) | + +#+begin_src emacs-lisp + (defun move (p v) + (list (mod (+ (car p) (* 100 (car v))) w) + (mod (+ (cadr p) (* 100 (cadr v))) h))) + (setq newpos (--map (move (car it) (cadr it)) data)) + (defun quadrant (comp p) + (and (funcall (car comp) (car p) (floor (* w 0.5))) + (funcall (cadr comp) (cadr p) (floor (* h 0.5))))) + (-reduce '* (--map (length (-filter (lambda (x) (quadrant it x)) newpos)) '((< <) (< >) (> <) (> >)))) + ) + +#+end_src + +#+RESULTS: +: 231852216 + +the second part is... meh. try and filter frames and check them +#+begin_src emacs-lisp + (defun flip (p) + (list (- w (car p) 1) (cadr p))) + (defun symmetric-p (li) + (eq (length (-intersection li (-map #'flip li))) (length li))) + +#+end_src