aboutsummaryrefslogtreecommitdiff
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);
+}