about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2018-12-11 14:30:26 +0100
committerLeah Neukirchen <leah@vuxu.org>2018-12-11 14:30:26 +0100
commit05050c3b5e20d5d475894788df6c31f867d2c51a (patch)
tree888500ae1bef07a8cd7eb7289a941933037073bb
parent4e3a081d08a79355219f8fcf78a9ae762d662b56 (diff)
downloadadventofcode2018-05050c3b5e20d5d475894788df6c31f867d2c51a.tar.gz
adventofcode2018-05050c3b5e20d5d475894788df6c31f867d2c51a.tar.xz
adventofcode2018-05050c3b5e20d5d475894788df6c31f867d2c51a.zip
day10
-rw-r--r--day10328
-rw-r--r--day10.k7
-rw-r--r--day10.rs34
3 files changed, 369 insertions, 0 deletions
diff --git a/day10 b/day10
new file mode 100644
index 0000000..73ce637
--- /dev/null
+++ b/day10
@@ -0,0 +1,328 @@
+position=< 21373,  53216> velocity=<-2, -5>
+position=<-10460, -31621> velocity=< 1,  3>
+position=< 21353, -42222> velocity=<-2,  4>
+position=< 53136, -52828> velocity=<-5,  5>
+position=< 42542, -21012> velocity=<-4,  2>
+position=<-42304, -10407> velocity=< 4,  1>
+position=< 21337,  21407> velocity=<-2, -2>
+position=<-42297,  42612> velocity=< 4, -4>
+position=< 31921, -42227> velocity=<-3,  4>
+position=<-21087,  10800> velocity=< 2, -1>
+position=<-52877, -31621> velocity=< 5,  3>
+position=< 42532,  32006> velocity=<-4, -3>
+position=< 42557, -31617> velocity=<-4,  3>
+position=<-10454,  21405> velocity=< 1, -2>
+position=< 10708, -21016> velocity=<-1,  2>
+position=<-42316, -10407> velocity=< 4,  1>
+position=< 42559,  42609> velocity=<-4, -4>
+position=< 21338,  10797> velocity=<-2, -1>
+position=< 21371, -21016> velocity=<-2,  2>
+position=< 42572, -42222> velocity=<-4,  4>
+position=< 10728,  42616> velocity=<-1, -4>
+position=<-31686,  21404> velocity=< 3, -2>
+position=< 31937, -21021> velocity=<-3,  2>
+position=< 53180,  32013> velocity=<-5, -3>
+position=< 42523, -52830> velocity=<-4,  5>
+position=< 53172,  10795> velocity=<-5, -1>
+position=< 42539, -42223> velocity=<-4,  4>
+position=<-21105,  42609> velocity=< 2, -4>
+position=<-10468, -42222> velocity=< 1,  4>
+position=< 10756, -52831> velocity=<-1,  5>
+position=<-10473, -31625> velocity=< 1,  3>
+position=< 53189,  10794> velocity=<-5, -1>
+position=< 42548, -31623> velocity=<-4,  3>
+position=<-42308, -31623> velocity=< 4,  3>
+position=<-21046, -10408> velocity=< 2,  1>
+position=< 53152, -42222> velocity=<-5,  4>
+position=< 53153,  53217> velocity=<-5, -5>
+position=<-42272,  53216> velocity=< 4, -5>
+position=<-42277,  10798> velocity=< 4, -1>
+position=< 10756, -10411> velocity=<-1,  1>
+position=< 21333, -10414> velocity=<-2,  1>
+position=<-52894,  10796> velocity=< 5, -1>
+position=< 10759, -21021> velocity=<-1,  2>
+position=< 21353, -21014> velocity=<-2,  2>
+position=< 21365,  53214> velocity=<-2, -5>
+position=<-42269, -21020> velocity=< 4,  2>
+position=< 10750,  53219> velocity=<-1, -5>
+position=< 53152, -10416> velocity=<-5,  1>
+position=<-31651, -52827> velocity=< 3,  5>
+position=< 10734, -42226> velocity=<-1,  4>
+position=< 21324, -31622> velocity=<-2,  3>
+position=< 31918, -31618> velocity=<-3,  3>
+position=< 53157, -21012> velocity=<-5,  2>
+position=<-52871,  32013> velocity=< 5, -3>
+position=< 31954, -21020> velocity=<-3,  2>
+position=< 31967,  10798> velocity=<-3, -1>
+position=<-52866, -42230> velocity=< 5,  4>
+position=<-21072, -52827> velocity=< 2,  5>
+position=<-21087, -21013> velocity=< 2,  2>
+position=< 10720, -21014> velocity=<-1,  2>
+position=< 31927,  42611> velocity=<-3, -4>
+position=< 21349,  10801> velocity=<-2, -1>
+position=<-21078,  21407> velocity=< 2, -2>
+position=<-42261, -31626> velocity=< 4,  3>
+position=< 21366,  32013> velocity=<-2, -3>
+position=<-31661,  53214> velocity=< 3, -5>
+position=<-31687,  21401> velocity=< 3, -2>
+position=<-52882, -21019> velocity=< 5,  2>
+position=<-21078,  32005> velocity=< 2, -3>
+position=< 31930, -52833> velocity=<-3,  5>
+position=<-31707, -10414> velocity=< 3,  1>
+position=< 31947, -10416> velocity=<-3,  1>
+position=<-31707, -31625> velocity=< 3,  3>
+position=< 31961, -42226> velocity=<-3,  4>
+position=<-42293, -52828> velocity=< 4,  5>
+position=<-42291, -52832> velocity=< 4,  5>
+position=< 31963,  10799> velocity=<-3, -1>
+position=< 21326, -52827> velocity=<-2,  5>
+position=<-31702, -31622> velocity=< 3,  3>
+position=<-42304, -52828> velocity=< 4,  5>
+position=<-52909, -31626> velocity=< 5,  3>
+position=<-10466,  10799> velocity=< 1, -1>
+position=<-52902, -31621> velocity=< 5,  3>
+position=<-31652,  10797> velocity=< 3, -1>
+position=< 21348, -31617> velocity=<-2,  3>
+position=<-52905, -21012> velocity=< 5,  2>
+position=<-31670,  10794> velocity=< 3, -1>
+position=< 21342, -10408> velocity=<-2,  1>
+position=<-42301,  10801> velocity=< 4, -1>
+position=< 21325,  21405> velocity=<-2, -2>
+position=<-31656,  53214> velocity=< 3, -5>
+position=< 10710, -52832> velocity=<-1,  5>
+position=< 42539, -10409> velocity=<-4,  1>
+position=<-10454, -31619> velocity=< 1,  3>
+position=< 53133,  42612> velocity=<-5, -4>
+position=<-21047,  42612> velocity=< 2, -4>
+position=< 21365, -21012> velocity=<-2,  2>
+position=< 53136, -10415> velocity=<-5,  1>
+position=<-10493, -31623> velocity=< 1,  3>
+position=<-21062,  53217> velocity=< 2, -5>
+position=<-31653,  21403> velocity=< 3, -2>
+position=< 53188, -52830> velocity=<-5,  5>
+position=<-21096, -31621> velocity=< 2,  3>
+position=< 10713, -21015> velocity=<-1,  2>
+position=< 31919,  32013> velocity=<-3, -3>
+position=<-10457, -52834> velocity=< 1,  5>
+position=< 10749,  32005> velocity=<-1, -3>
+position=<-31704, -21013> velocity=< 3,  2>
+position=< 10756,  42611> velocity=<-1, -4>
+position=<-10477, -10410> velocity=< 1,  1>
+position=<-21089, -31617> velocity=< 2,  3>
+position=< 53136,  42610> velocity=<-5, -4>
+position=<-31659,  10803> velocity=< 3, -1>
+position=< 21350,  42609> velocity=<-2, -4>
+position=< 42552, -31626> velocity=<-4,  3>
+position=<-31691, -52836> velocity=< 3,  5>
+position=< 53172, -52831> velocity=<-5,  5>
+position=< 21361,  21406> velocity=<-2, -2>
+position=<-52902,  42609> velocity=< 5, -4>
+position=<-42267,  32013> velocity=< 4, -3>
+position=<-31677, -31626> velocity=< 3,  3>
+position=<-10443, -10411> velocity=< 1,  1>
+position=< 10724, -10408> velocity=<-1,  1>
+position=< 31927, -31620> velocity=<-3,  3>
+position=<-52914, -10407> velocity=< 5,  1>
+position=<-52870,  53214> velocity=< 5, -5>
+position=<-31692, -31623> velocity=< 3,  3>
+position=< 42573, -10412> velocity=<-4,  1>
+position=< 21349,  42609> velocity=<-2, -4>
+position=< 10717, -31619> velocity=<-1,  3>
+position=<-10494,  21408> velocity=< 1, -2>
+position=< 42528, -31619> velocity=<-4,  3>
+position=<-21096,  32009> velocity=< 2, -3>
+position=<-31651,  53223> velocity=< 3, -5>
+position=<-21087, -21019> velocity=< 2,  2>
+position=<-10474, -21019> velocity=< 1,  2>
+position=< 53184, -21021> velocity=<-5,  2>
+position=< 10750, -21016> velocity=<-1,  2>
+position=<-42261, -31618> velocity=< 4,  3>
+position=<-10474,  10801> velocity=< 1, -1>
+position=<-52873, -42227> velocity=< 5,  4>
+position=<-42281,  10797> velocity=< 4, -1>
+position=<-31712, -31626> velocity=< 3,  3>
+position=< 42566,  21399> velocity=<-4, -2>
+position=< 42564,  53219> velocity=<-4, -5>
+position=<-10474, -52829> velocity=< 1,  5>
+position=< 53155,  32009> velocity=<-5, -3>
+position=<-10482,  42616> velocity=< 1, -4>
+position=<-21063,  21404> velocity=< 2, -2>
+position=< 53176,  32008> velocity=<-5, -3>
+position=<-52919, -52836> velocity=< 5,  5>
+position=<-10477, -52830> velocity=< 1,  5>
+position=< 31958, -52829> velocity=<-3,  5>
+position=< 21349, -21017> velocity=<-2,  2>
+position=<-31664,  32013> velocity=< 3, -3>
+position=<-52886, -21013> velocity=< 5,  2>
+position=<-10466, -31622> velocity=< 1,  3>
+position=<-21062,  32013> velocity=< 2, -3>
+position=< 53129,  10803> velocity=<-5, -1>
+position=< 21340,  32008> velocity=<-2, -3>
+position=<-21082,  10800> velocity=< 2, -1>
+position=<-52918,  21408> velocity=< 5, -2>
+position=<-52894,  53220> velocity=< 5, -5>
+position=<-21075, -21013> velocity=< 2,  2>
+position=< 53129,  42609> velocity=<-5, -4>
+position=< 31918,  53214> velocity=<-3, -5>
+position=<-31676, -10415> velocity=< 3,  1>
+position=< 42567, -10415> velocity=<-4,  1>
+position=< 53180, -10412> velocity=<-5,  1>
+position=<-10446,  53215> velocity=< 1, -5>
+position=<-52873, -21021> velocity=< 5,  2>
+position=<-42281, -10411> velocity=< 4,  1>
+position=< 42523,  21402> velocity=<-4, -2>
+position=<-21064, -21021> velocity=< 2,  2>
+position=< 31963,  21401> velocity=<-3, -2>
+position=<-31664, -42230> velocity=< 3,  4>
+position=<-52914, -42231> velocity=< 5,  4>
+position=<-10497, -21014> velocity=< 1,  2>
+position=<-21087,  42610> velocity=< 2, -4>
+position=< 42523, -52835> velocity=<-4,  5>
+position=< 31958,  32007> velocity=<-3, -3>
+position=<-52862,  10796> velocity=< 5, -1>
+position=<-31662,  53214> velocity=< 3, -5>
+position=< 10748, -10411> velocity=<-1,  1>
+position=<-31707, -21016> velocity=< 3,  2>
+position=<-52922, -10416> velocity=< 5,  1>
+position=< 31918,  21408> velocity=<-3, -2>
+position=<-31667, -31618> velocity=< 3,  3>
+position=<-42291,  32009> velocity=< 4, -3>
+position=< 31922,  42609> velocity=<-3, -4>
+position=< 10732,  42610> velocity=<-1, -4>
+position=< 21316,  53223> velocity=<-2, -5>
+position=< 10748, -31620> velocity=<-1,  3>
+position=< 31976, -42226> velocity=<-3,  4>
+position=<-52880, -42231> velocity=< 5,  4>
+position=<-21071, -42223> velocity=< 2,  4>
+position=< 10761, -31626> velocity=<-1,  3>
+position=< 21313, -52830> velocity=<-2,  5>
+position=<-52914,  53222> velocity=< 5, -5>
+position=<-52861,  42610> velocity=< 5, -4>
+position=<-21104, -31626> velocity=< 2,  3>
+position=<-21102,  10801> velocity=< 2, -1>
+position=< 42580, -42224> velocity=<-4,  4>
+position=< 10720, -31624> velocity=<-1,  3>
+position=<-10454, -42223> velocity=< 1,  4>
+position=<-10462, -21012> velocity=< 1,  2>
+position=<-52922, -31624> velocity=< 5,  3>
+position=< 31958,  53222> velocity=<-3, -5>
+position=<-42283, -42222> velocity=< 4,  4>
+position=< 10718, -21017> velocity=<-1,  2>
+position=< 10721, -21020> velocity=<-1,  2>
+position=<-31700,  42611> velocity=< 3, -4>
+position=< 21362,  10798> velocity=<-2, -1>
+position=<-10502, -52830> velocity=< 1,  5>
+position=< 31977,  10799> velocity=<-3, -1>
+position=< 21369,  32005> velocity=<-2, -3>
+position=< 42559,  10801> velocity=<-4, -1>
+position=< 21349, -42224> velocity=<-2,  4>
+position=<-21047, -42229> velocity=< 2,  4>
+position=< 21313, -31619> velocity=<-2,  3>
+position=<-21089, -31617> velocity=< 2,  3>
+position=< 53184, -10408> velocity=<-5,  1>
+position=< 31946,  10797> velocity=<-3, -1>
+position=< 21345, -10408> velocity=<-2,  1>
+position=<-52877,  53223> velocity=< 5, -5>
+position=<-52865, -52834> velocity=< 5,  5>
+position=<-52922,  21400> velocity=< 5, -2>
+position=< 10724, -31619> velocity=<-1,  3>
+position=<-10459, -31621> velocity=< 1,  3>
+position=< 31967,  53214> velocity=<-3, -5>
+position=<-10466,  42614> velocity=< 1, -4>
+position=<-21058, -31626> velocity=< 2,  3>
+position=< 10708, -42226> velocity=<-1,  4>
+position=< 21313, -42224> velocity=<-2,  4>
+position=<-21099, -10416> velocity=< 2,  1>
+position=< 10741,  32013> velocity=<-1, -3>
+position=<-21062, -52829> velocity=< 2,  5>
+position=< 31938, -52832> velocity=<-3,  5>
+position=< 21318,  10802> velocity=<-2, -1>
+position=< 21349,  21402> velocity=<-2, -2>
+position=< 21361,  53223> velocity=<-2, -5>
+position=< 21349,  21405> velocity=<-2, -2>
+position=< 21334,  10794> velocity=<-2, -1>
+position=< 31947,  21399> velocity=<-3, -2>
+position=< 10709, -10412> velocity=<-1,  1>
+position=<-42269, -10412> velocity=< 4,  1>
+position=<-52874, -42227> velocity=< 5,  4>
+position=<-21095, -31620> velocity=< 2,  3>
+position=<-10457,  21404> velocity=< 1, -2>
+position=< 53157, -21020> velocity=<-5,  2>
+position=<-31685, -21016> velocity=< 3,  2>
+position=< 10716, -31626> velocity=<-1,  3>
+position=< 53152,  10802> velocity=<-5, -1>
+position=<-52922,  42611> velocity=< 5, -4>
+position=< 21361,  42612> velocity=<-2, -4>
+position=< 31966,  10795> velocity=<-3, -1>
+position=<-21102,  42610> velocity=< 2, -4>
+position=< 42580,  32010> velocity=<-4, -3>
+position=< 31947, -21013> velocity=<-3,  2>
+position=< 42571,  42612> velocity=<-4, -4>
+position=<-52862,  53221> velocity=< 5, -5>
+position=< 53171, -10411> velocity=<-5,  1>
+position=< 42555,  32011> velocity=<-4, -3>
+position=<-52909, -42231> velocity=< 5,  4>
+position=< 31934, -10408> velocity=<-3,  1>
+position=<-42268, -52827> velocity=< 4,  5>
+position=<-21056,  53218> velocity=< 2, -5>
+position=<-42259, -52832> velocity=< 4,  5>
+position=< 31976,  21404> velocity=<-3, -2>
+position=< 42532,  53216> velocity=<-4, -5>
+position=<-52920, -42231> velocity=< 5,  4>
+position=< 53179,  53214> velocity=<-5, -5>
+position=<-52869,  10794> velocity=< 5, -1>
+position=< 53181,  42618> velocity=<-5, -4>
+position=< 10760, -52832> velocity=<-1,  5>
+position=< 31975, -52829> velocity=<-3,  5>
+position=< 42523, -42222> velocity=<-4,  4>
+position=<-31656,  32013> velocity=< 3, -3>
+position=<-42260, -52830> velocity=< 4,  5>
+position=< 42556, -31617> velocity=<-4,  3>
+position=< 31979, -10407> velocity=<-3,  1>
+position=< 42575,  32013> velocity=<-4, -3>
+position=< 10728,  21407> velocity=<-1, -2>
+position=<-10458,  32009> velocity=< 1, -3>
+position=< 42563, -31619> velocity=<-4,  3>
+position=< 31942, -52827> velocity=<-3,  5>
+position=< 21372,  32009> velocity=<-2, -3>
+position=< 53139,  32008> velocity=<-5, -3>
+position=<-42281, -42228> velocity=< 4,  4>
+position=<-42315, -52827> velocity=< 4,  5>
+position=< 31946,  21405> velocity=<-3, -2>
+position=< 42559, -31622> velocity=<-4,  3>
+position=<-10442, -10410> velocity=< 1,  1>
+position=<-52910, -21015> velocity=< 5,  2>
+position=<-52921, -42227> velocity=< 5,  4>
+position=< 31943, -10409> velocity=<-3,  1>
+position=< 10769, -10416> velocity=<-1,  1>
+position=<-42305,  42611> velocity=< 4, -4>
+position=< 21337,  32013> velocity=<-2, -3>
+position=< 10728, -42228> velocity=<-1,  4>
+position=<-31653,  21403> velocity=< 3, -2>
+position=< 21317,  32008> velocity=<-2, -3>
+position=<-31679,  10803> velocity=< 3, -1>
+position=<-31664,  10799> velocity=< 3, -1>
+position=<-52862,  42616> velocity=< 5, -4>
+position=< 31918,  53218> velocity=<-3, -5>
+position=<-21104,  32004> velocity=< 2, -3>
+position=<-42297,  10796> velocity=< 4, -1>
+position=< 31938,  53222> velocity=<-3, -5>
+position=<-31655, -31623> velocity=< 3,  3>
+position=<-21071, -42229> velocity=< 2,  4>
+position=< 53173, -52832> velocity=<-5,  5>
+position=< 31929, -31621> velocity=<-3,  3>
+position=<-42289,  21402> velocity=< 4, -2>
+position=< 42533,  10799> velocity=<-4, -1>
+position=<-21102, -52828> velocity=< 2,  5>
+position=<-21062, -42225> velocity=< 2,  4>
+position=< 53133, -21016> velocity=<-5,  2>
+position=< 31969,  53223> velocity=<-3, -5>
+position=<-10482, -21021> velocity=< 1,  2>
+position=< 21355,  32004> velocity=<-2, -3>
+position=<-31664,  21402> velocity=< 3, -2>
+position=<-31664, -31626> velocity=< 3,  3>
+position=< 10760, -42231> velocity=<-1,  4>
+position=<-31684, -31623> velocity=< 3,  3>
+position=<-52902, -21015> velocity=< 5,  2>
+position=< 42536,  32004> velocity=<-4, -3>
+position=<-10442,  32007> velocity=< 1, -3>
diff --git a/day10.k b/day10.k
new file mode 100644
index 0000000..7ff2995
--- /dev/null
+++ b/day10.k
@@ -0,0 +1,7 @@
+d:{.:'(x 10+!6; x 18+!6; x 36+!2; x 40+!2)}'1:`day10
+n:*<{r:d[;0]+x*d[;2];(|/r)-(&/r)}'!20000
+(30 80#" "){.[x;y-180 100;:;"#"]}/d[;1 0]+n*d[;3 2]  / BXJXJAEX
+n  / 10605
+
+
+/ " #"@+(in[;d[;0 1]+n*d[;2 3]])''80 30#+100 180+!80 30  / BXJXJAEX
diff --git a/day10.rs b/day10.rs
new file mode 100644
index 0000000..447862a
--- /dev/null
+++ b/day10.rs
@@ -0,0 +1,34 @@
+use std::fs::File;
+use std::io::{BufRead,BufReader};
+
+fn main() {
+    let f = File::open("day10").unwrap();
+
+    let v: Vec<(i32,i32,i32,i32)> = BufReader::new(&f).lines()
+        .map(|l| {
+            let l = l.unwrap();
+            (l[10..16].trim().parse().unwrap(),
+             l[18..24].trim().parse().unwrap(),
+             l[36..38].trim().parse().unwrap(),
+             l[40..42].trim().parse().unwrap())
+        }).collect();
+
+    let p2 = (0..20000).min_by_key(|i| {
+        let a = v.iter().map(|l| l.0 + i*l.2).max().unwrap();
+        let b = v.iter().map(|l| l.0 + i*l.2).min().unwrap();
+        (a - b)
+    }).unwrap();
+
+    let mut m = [[' '; 30]; 80];
+    for l in v {
+        m[(l.0 + p2*l.2 - 100) as usize][(l.1 + p2*l.3 - 180) as usize] = '#';
+    }
+
+    for x in 0..30 {
+        for y in 0..80 {
+            print!("{}", m[y][x]);
+        }
+        println!("");
+    }
+    println!("{}", p2);
+}