about summary refs log tree commit diff
path: root/day10.rs
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 /day10.rs
parent4e3a081d08a79355219f8fcf78a9ae762d662b56 (diff)
downloadadventofcode2018-05050c3b5e20d5d475894788df6c31f867d2c51a.tar.gz
adventofcode2018-05050c3b5e20d5d475894788df6c31f867d2c51a.tar.xz
adventofcode2018-05050c3b5e20d5d475894788df6c31f867d2c51a.zip
day10
Diffstat (limited to 'day10.rs')
-rw-r--r--day10.rs34
1 files changed, 34 insertions, 0 deletions
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);
+}