Added 1 and 2

This commit is contained in:
tobimai committed 2021-12-03 15:17:28 +01:00
1 parent 069a30205f
commit 641a176c77
12 files changed
+6161

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
[package]
name = "december_1_1"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
File diff suppressed because it is too large. Load diff
+21
View File
@@ -0,0 +1,21 @@
use std::fs::File;
use std::io::{BufReader};
use std::io::prelude::*;
fn main(){
let file = File::open("./input.txt").expect("Read failed");
let reader = BufReader::new(file);
let mut previous_value: i32 = -1;
let mut number_of_bigger_values: i32 = 0;
for line in reader.lines(){
let current_value = line.expect("-1").parse::<i32>().unwrap();
if previous_value != -1 && current_value > previous_value {
number_of_bigger_values += 1;
}
previous_value = current_value;
}
println!("Bigger values: {}", number_of_bigger_values)
}
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "december_1_2"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
File diff suppressed because it is too large. Load diff
+34
View File
@@ -0,0 +1,34 @@
use std::fs::File;
use std::io::{BufReader};
use std::io::prelude::*;
fn main(){
let file = File::open("./input.txt").expect("Read failed");
let reader = BufReader::new(file);
let mut number_of_bigger_values: i32 = 0;
let mut previous_sum = -1;
let mut values: Vec<i32> = Vec::new();
let all_lines = reader.lines();
for line in all_lines{
values.push(line.expect("-1").parse::<i32>().unwrap());
}
for x in 2..values.len(){
println!("{}", x);
let sum = values[x] + values[x-1] + values[x-2];
if previous_sum != -1 && sum > previous_sum {
number_of_bigger_values += 1;
}
previous_sum = sum;
}
println!("Bigger values: {}", number_of_bigger_values)
}
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "december_2_1"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
+1000
View File
@@ -0,0 +1,1000 @@
forward 1
down 6
down 6
forward 2
forward 2
down 2
down 1
down 5
down 7
down 3
forward 1
forward 6
up 2
forward 2
forward 7
forward 4
down 2
forward 6
forward 6
down 3
up 7
down 6
forward 2
up 5
down 7
forward 8
down 8
forward 8
down 5
down 5
down 8
forward 9
down 7
forward 9
forward 9
forward 8
down 6
down 9
down 1
forward 8
down 6
down 7
up 3
forward 5
down 1
down 7
up 8
forward 6
down 2
down 9
down 9
forward 1
down 2
down 9
forward 1
forward 3
down 6
up 7
down 7
forward 3
down 4
down 3
up 7
up 7
forward 2
down 7
forward 2
down 3
up 7
down 7
forward 6
down 2
down 7
forward 5
down 9
down 2
up 7
down 1
forward 5
down 5
forward 9
down 6
down 3
down 7
down 8
down 3
up 4
down 6
forward 6
up 7
up 2
forward 3
up 1
down 5
forward 9
up 3
forward 8
up 4
down 7
down 8
down 3
down 7
forward 5
up 6
down 4
down 8
down 8
forward 7
down 5
forward 3
forward 1
down 1
forward 1
up 1
forward 4
forward 9
up 8
down 7
down 9
down 1
down 2
down 1
down 4
forward 4
forward 8
forward 6
forward 1
forward 6
forward 9
down 1
up 9
down 9
forward 2
down 6
down 8
down 6
up 7
forward 2
up 2
forward 5
down 2
up 2
up 9
forward 7
down 6
forward 3
down 5
up 4
down 1
down 5
down 6
up 7
down 3
down 9
up 8
down 2
up 8
down 1
down 2
down 4
forward 6
up 7
up 3
forward 8
down 9
down 8
forward 3
up 5
forward 1
down 5
up 2
down 5
up 4
down 6
forward 9
down 1
down 1
forward 1
down 2
forward 9
up 5
down 7
forward 7
down 9
down 5
down 3
forward 4
down 2
forward 7
forward 3
up 4
down 9
forward 9
forward 3
forward 1
forward 6
down 1
down 5
down 3
forward 9
down 2
forward 9
up 7
forward 7
forward 7
forward 8
forward 6
forward 5
down 7
up 4
forward 7
up 2
forward 6
down 2
down 9
down 3
forward 5
down 3
down 9
forward 2
up 4
forward 7
forward 3
forward 8
down 4
forward 4
down 3
up 7
up 1
up 4
down 3
down 5
down 3
down 7
down 3
down 7
down 5
down 1
forward 5
forward 6
down 1
forward 9
down 4
up 1
forward 5
up 6
down 4
up 7
down 4
down 9
forward 7
up 8
forward 3
forward 5
down 9
down 1
down 7
forward 9
down 9
down 5
forward 6
forward 4
forward 3
down 1
down 2
up 4
up 7
down 8
forward 4
forward 1
forward 8
down 8
down 8
forward 1
forward 5
up 8
forward 2
down 6
forward 6
down 6
forward 7
down 9
down 4
up 4
up 5
down 7
forward 4
down 7
down 5
forward 7
down 3
down 2
forward 5
forward 1
down 5
down 4
down 8
up 8
forward 3
down 7
down 8
down 5
forward 1
down 6
forward 8
forward 2
forward 3
down 4
up 3
down 4
forward 3
forward 9
up 5
up 9
down 3
up 4
forward 4
down 9
forward 8
down 2
down 2
forward 9
down 5
down 2
up 1
forward 6
forward 4
up 5
up 3
up 8
down 7
forward 5
up 7
forward 9
down 6
down 7
forward 4
down 9
up 2
forward 8
down 1
forward 6
forward 1
forward 4
down 9
down 6
up 1
forward 1
down 5
up 1
forward 3
down 1
down 4
forward 3
down 4
up 9
down 6
up 6
forward 1
forward 8
up 1
down 7
up 8
up 3
up 7
down 9
forward 8
down 3
up 2
forward 3
up 4
up 3
down 5
forward 3
forward 2
down 3
forward 5
up 4
down 9
down 8
down 3
down 5
down 7
forward 2
forward 8
up 9
forward 9
down 4
down 8
forward 5
down 2
up 4
down 7
forward 6
up 9
forward 6
down 9
down 5
forward 9
down 5
down 3
up 6
up 6
down 7
up 1
forward 7
forward 4
down 5
forward 8
down 5
down 8
forward 4
forward 8
forward 1
down 7
forward 4
down 6
down 4
up 8
down 4
up 5
up 7
up 2
down 5
down 9
forward 6
down 7
down 9
down 3
up 4
down 8
forward 3
forward 5
forward 8
down 9
forward 9
down 1
up 1
down 9
forward 3
up 9
forward 5
forward 2
down 1
down 5
down 6
forward 5
forward 4
up 5
forward 5
up 4
up 9
up 4
forward 8
down 7
down 6
down 9
down 3
down 2
down 6
up 6
forward 6
up 3
down 3
forward 3
down 2
down 9
down 3
forward 1
forward 8
down 2
down 9
down 6
up 3
down 6
forward 1
forward 1
forward 2
down 9
down 8
forward 9
down 2
up 3
forward 2
up 5
up 8
down 4
up 3
forward 3
forward 5
forward 1
down 5
up 4
forward 4
down 7
forward 8
up 7
forward 5
down 2
forward 4
forward 6
down 7
down 9
forward 2
forward 2
down 4
down 5
up 5
forward 5
forward 2
down 8
forward 6
down 1
down 6
forward 1
down 8
up 6
down 8
forward 4
down 4
down 4
forward 3
up 8
down 1
forward 7
down 5
forward 1
down 9
down 9
down 5
forward 1
down 4
up 6
forward 4
forward 5
forward 1
down 4
down 2
down 5
forward 6
forward 1
forward 6
down 2
down 6
forward 3
down 9
up 6
forward 2
up 7
forward 8
down 7
up 1
forward 1
down 8
forward 8
down 9
forward 4
down 4
down 5
down 8
up 3
forward 1
forward 9
down 9
up 2
down 1
down 8
down 6
forward 3
down 8
down 3
forward 5
forward 2
forward 5
forward 5
forward 2
forward 4
down 9
down 3
forward 7
forward 3
up 3
up 1
forward 2
down 5
forward 3
up 3
forward 2
forward 9
forward 5
down 3
forward 9
up 2
forward 7
up 3
down 8
forward 7
up 5
forward 3
forward 4
up 5
down 6
up 2
forward 8
up 3
down 5
down 4
forward 9
up 2
down 5
forward 4
up 7
down 9
up 8
down 4
up 5
forward 4
down 8
forward 3
down 5
down 5
down 8
up 9
forward 3
forward 9
down 2
forward 4
down 1
up 3
down 9
up 6
down 1
down 1
down 5
down 1
down 7
forward 4
down 4
down 9
up 1
up 7
up 2
down 8
up 5
down 6
forward 6
forward 6
down 4
forward 9
forward 4
forward 9
forward 4
up 5
forward 9
up 7
up 1
forward 5
forward 9
down 7
forward 7
forward 6
down 5
forward 9
up 9
down 4
down 9
down 2
forward 3
down 3
down 3
forward 9
down 8
down 4
down 8
down 6
down 6
down 9
up 5
down 3
down 4
up 6
up 2
forward 1
up 9
up 9
forward 9
forward 7
down 3
forward 2
up 5
down 2
forward 2
forward 8
down 8
forward 4
forward 2
up 3
up 8
down 5
forward 5
forward 8
down 1
down 8
forward 3
forward 9
down 7
forward 5
forward 8
forward 1
up 6
forward 9
up 5
forward 8
forward 3
down 2
up 9
up 7
forward 5
down 8
down 3
forward 8
down 3
down 9
down 9
forward 7
down 9
forward 5
forward 1
forward 5
down 2
down 7
forward 4
down 4
up 8
down 2
up 1
down 1
up 5
up 6
down 5
up 9
up 6
down 6
down 4
down 3
forward 9
forward 2
forward 2
up 6
forward 9
down 3
forward 4
forward 6
forward 8
forward 2
forward 8
forward 4
down 1
forward 3
up 1
up 9
forward 9
up 6
up 5
forward 2
down 6
up 8
up 9
forward 3
forward 9
down 7
down 6
forward 2
down 7
forward 4
down 5
down 2
down 6
down 2
down 5
down 3
forward 3
down 7
down 6
down 5
up 2
forward 4
up 9
forward 2
forward 4
down 5
up 9
up 2
forward 9
forward 6
down 6
down 3
down 5
down 1
up 4
up 1
down 4
down 1
forward 5
forward 3
down 7
down 9
forward 2
down 3
up 7
down 2
down 6
forward 3
forward 3
down 3
up 1
forward 6
forward 3
down 6
down 2
up 4
up 3
down 5
down 9
down 3
forward 7
forward 2
forward 9
down 6
forward 4
up 9
forward 1
down 4
down 6
down 2
forward 3
down 2
up 8
forward 1
forward 9
down 9
up 7
forward 6
up 8
down 9
down 4
forward 8
down 6
down 1
down 9
down 1
up 7
forward 9
up 3
forward 7
up 7
down 2
forward 1
down 4
down 7
forward 7
forward 9
down 6
down 5
down 8
down 9
up 3
down 7
up 3
down 1
forward 1
forward 6
forward 2
down 6
forward 9
forward 1
up 2
forward 1
forward 3
forward 4
forward 7
forward 4
down 3
up 8
forward 9
down 7
forward 6
forward 3
down 6
forward 4
up 1
forward 3
down 3
forward 9
forward 2
forward 1
forward 4
up 6
forward 3
down 6
down 8
up 4
forward 8
forward 4
down 8
up 4
up 3
forward 9
forward 3
down 5
forward 7
forward 1
up 8
up 4
down 1
down 3
down 9
down 7
up 5
forward 6
down 1
forward 3
down 2
down 2
down 6
forward 2
down 5
forward 2
forward 1
up 9
down 1
forward 3
down 3
forward 6
down 1
forward 5
forward 7
down 6
forward 7
down 4
up 7
forward 1
down 7
down 8
down 9
down 6
down 1
forward 6
down 7
forward 2
down 2
up 1
up 2
down 3
down 4
up 2
forward 3
down 5
down 4
down 9
down 6
down 9
down 7
down 2
forward 7
forward 3
up 3
down 1
down 5
down 1
down 3
down 3
forward 9
down 1
down 7
up 4
down 1
down 6
up 9
down 9
forward 6
down 9
forward 3
forward 8
up 1
forward 3
down 8
forward 2
down 6
down 1
up 7
down 1
forward 3
down 2
forward 1
up 8
forward 8
forward 7
down 9
forward 3
+35
View File
@@ -0,0 +1,35 @@
use std::fs::File;
use std::io::{BufReader};
use std::io::prelude::*;
fn main(){
let file = File::open("./input.txt").expect("Read failed");
let reader = BufReader::new(file);
let mut current_depth = 0;
let mut current_horizontal = 0;
let all_lines = reader.lines();
for line in all_lines{
let line_as_string = line.unwrap();
let split_line = line_as_string.split_whitespace().collect::<Vec<&str>>();
let direction = split_line[0];
let distance = split_line[1].parse::<i32>().unwrap();
match direction {
"forward" => current_horizontal += distance,
"down" => current_depth += distance,
"up" => current_depth -= distance,
_ => println!("You should never be here")
}
}
println!("Depth: {}, Horizontal: {}, Result: {}", current_depth, current_horizontal, current_horizontal*current_depth)
}
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "december_2_2"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
+1000
View File
@@ -0,0 +1,1000 @@
forward 1
down 6
down 6
forward 2
forward 2
down 2
down 1
down 5
down 7
down 3
forward 1
forward 6
up 2
forward 2
forward 7
forward 4
down 2
forward 6
forward 6
down 3
up 7
down 6
forward 2
up 5
down 7
forward 8
down 8
forward 8
down 5
down 5
down 8
forward 9
down 7
forward 9
forward 9
forward 8
down 6
down 9
down 1
forward 8
down 6
down 7
up 3
forward 5
down 1
down 7
up 8
forward 6
down 2
down 9
down 9
forward 1
down 2
down 9
forward 1
forward 3
down 6
up 7
down 7
forward 3
down 4
down 3
up 7
up 7
forward 2
down 7
forward 2
down 3
up 7
down 7
forward 6
down 2
down 7
forward 5
down 9
down 2
up 7
down 1
forward 5
down 5
forward 9
down 6
down 3
down 7
down 8
down 3
up 4
down 6
forward 6
up 7
up 2
forward 3
up 1
down 5
forward 9
up 3
forward 8
up 4
down 7
down 8
down 3
down 7
forward 5
up 6
down 4
down 8
down 8
forward 7
down 5
forward 3
forward 1
down 1
forward 1
up 1
forward 4
forward 9
up 8
down 7
down 9
down 1
down 2
down 1
down 4
forward 4
forward 8
forward 6
forward 1
forward 6
forward 9
down 1
up 9
down 9
forward 2
down 6
down 8
down 6
up 7
forward 2
up 2
forward 5
down 2
up 2
up 9
forward 7
down 6
forward 3
down 5
up 4
down 1
down 5
down 6
up 7
down 3
down 9
up 8
down 2
up 8
down 1
down 2
down 4
forward 6
up 7
up 3
forward 8
down 9
down 8
forward 3
up 5
forward 1
down 5
up 2
down 5
up 4
down 6
forward 9
down 1
down 1
forward 1
down 2
forward 9
up 5
down 7
forward 7
down 9
down 5
down 3
forward 4
down 2
forward 7
forward 3
up 4
down 9
forward 9
forward 3
forward 1
forward 6
down 1
down 5
down 3
forward 9
down 2
forward 9
up 7
forward 7
forward 7
forward 8
forward 6
forward 5
down 7
up 4
forward 7
up 2
forward 6
down 2
down 9
down 3
forward 5
down 3
down 9
forward 2
up 4
forward 7
forward 3
forward 8
down 4
forward 4
down 3
up 7
up 1
up 4
down 3
down 5
down 3
down 7
down 3
down 7
down 5
down 1
forward 5
forward 6
down 1
forward 9
down 4
up 1
forward 5
up 6
down 4
up 7
down 4
down 9
forward 7
up 8
forward 3
forward 5
down 9
down 1
down 7
forward 9
down 9
down 5
forward 6
forward 4
forward 3
down 1
down 2
up 4
up 7
down 8
forward 4
forward 1
forward 8
down 8
down 8
forward 1
forward 5
up 8
forward 2
down 6
forward 6
down 6
forward 7
down 9
down 4
up 4
up 5
down 7
forward 4
down 7
down 5
forward 7
down 3
down 2
forward 5
forward 1
down 5
down 4
down 8
up 8
forward 3
down 7
down 8
down 5
forward 1
down 6
forward 8
forward 2
forward 3
down 4
up 3
down 4
forward 3
forward 9
up 5
up 9
down 3
up 4
forward 4
down 9
forward 8
down 2
down 2
forward 9
down 5
down 2
up 1
forward 6
forward 4
up 5
up 3
up 8
down 7
forward 5
up 7
forward 9
down 6
down 7
forward 4
down 9
up 2
forward 8
down 1
forward 6
forward 1
forward 4
down 9
down 6
up 1
forward 1
down 5
up 1
forward 3
down 1
down 4
forward 3
down 4
up 9
down 6
up 6
forward 1
forward 8
up 1
down 7
up 8
up 3
up 7
down 9
forward 8
down 3
up 2
forward 3
up 4
up 3
down 5
forward 3
forward 2
down 3
forward 5
up 4
down 9
down 8
down 3
down 5
down 7
forward 2
forward 8
up 9
forward 9
down 4
down 8
forward 5
down 2
up 4
down 7
forward 6
up 9
forward 6
down 9
down 5
forward 9
down 5
down 3
up 6
up 6
down 7
up 1
forward 7
forward 4
down 5
forward 8
down 5
down 8
forward 4
forward 8
forward 1
down 7
forward 4
down 6
down 4
up 8
down 4
up 5
up 7
up 2
down 5
down 9
forward 6
down 7
down 9
down 3
up 4
down 8
forward 3
forward 5
forward 8
down 9
forward 9
down 1
up 1
down 9
forward 3
up 9
forward 5
forward 2
down 1
down 5
down 6
forward 5
forward 4
up 5
forward 5
up 4
up 9
up 4
forward 8
down 7
down 6
down 9
down 3
down 2
down 6
up 6
forward 6
up 3
down 3
forward 3
down 2
down 9
down 3
forward 1
forward 8
down 2
down 9
down 6
up 3
down 6
forward 1
forward 1
forward 2
down 9
down 8
forward 9
down 2
up 3
forward 2
up 5
up 8
down 4
up 3
forward 3
forward 5
forward 1
down 5
up 4
forward 4
down 7
forward 8
up 7
forward 5
down 2
forward 4
forward 6
down 7
down 9
forward 2
forward 2
down 4
down 5
up 5
forward 5
forward 2
down 8
forward 6
down 1
down 6
forward 1
down 8
up 6
down 8
forward 4
down 4
down 4
forward 3
up 8
down 1
forward 7
down 5
forward 1
down 9
down 9
down 5
forward 1
down 4
up 6
forward 4
forward 5
forward 1
down 4
down 2
down 5
forward 6
forward 1
forward 6
down 2
down 6
forward 3
down 9
up 6
forward 2
up 7
forward 8
down 7
up 1
forward 1
down 8
forward 8
down 9
forward 4
down 4
down 5
down 8
up 3
forward 1
forward 9
down 9
up 2
down 1
down 8
down 6
forward 3
down 8
down 3
forward 5
forward 2
forward 5
forward 5
forward 2
forward 4
down 9
down 3
forward 7
forward 3
up 3
up 1
forward 2
down 5
forward 3
up 3
forward 2
forward 9
forward 5
down 3
forward 9
up 2
forward 7
up 3
down 8
forward 7
up 5
forward 3
forward 4
up 5
down 6
up 2
forward 8
up 3
down 5
down 4
forward 9
up 2
down 5
forward 4
up 7
down 9
up 8
down 4
up 5
forward 4
down 8
forward 3
down 5
down 5
down 8
up 9
forward 3
forward 9
down 2
forward 4
down 1
up 3
down 9
up 6
down 1
down 1
down 5
down 1
down 7
forward 4
down 4
down 9
up 1
up 7
up 2
down 8
up 5
down 6
forward 6
forward 6
down 4
forward 9
forward 4
forward 9
forward 4
up 5
forward 9
up 7
up 1
forward 5
forward 9
down 7
forward 7
forward 6
down 5
forward 9
up 9
down 4
down 9
down 2
forward 3
down 3
down 3
forward 9
down 8
down 4
down 8
down 6
down 6
down 9
up 5
down 3
down 4
up 6
up 2
forward 1
up 9
up 9
forward 9
forward 7
down 3
forward 2
up 5
down 2
forward 2
forward 8
down 8
forward 4
forward 2
up 3
up 8
down 5
forward 5
forward 8
down 1
down 8
forward 3
forward 9
down 7
forward 5
forward 8
forward 1
up 6
forward 9
up 5
forward 8
forward 3
down 2
up 9
up 7
forward 5
down 8
down 3
forward 8
down 3
down 9
down 9
forward 7
down 9
forward 5
forward 1
forward 5
down 2
down 7
forward 4
down 4
up 8
down 2
up 1
down 1
up 5
up 6
down 5
up 9
up 6
down 6
down 4
down 3
forward 9
forward 2
forward 2
up 6
forward 9
down 3
forward 4
forward 6
forward 8
forward 2
forward 8
forward 4
down 1
forward 3
up 1
up 9
forward 9
up 6
up 5
forward 2
down 6
up 8
up 9
forward 3
forward 9
down 7
down 6
forward 2
down 7
forward 4
down 5
down 2
down 6
down 2
down 5
down 3
forward 3
down 7
down 6
down 5
up 2
forward 4
up 9
forward 2
forward 4
down 5
up 9
up 2
forward 9
forward 6
down 6
down 3
down 5
down 1
up 4
up 1
down 4
down 1
forward 5
forward 3
down 7
down 9
forward 2
down 3
up 7
down 2
down 6
forward 3
forward 3
down 3
up 1
forward 6
forward 3
down 6
down 2
up 4
up 3
down 5
down 9
down 3
forward 7
forward 2
forward 9
down 6
forward 4
up 9
forward 1
down 4
down 6
down 2
forward 3
down 2
up 8
forward 1
forward 9
down 9
up 7
forward 6
up 8
down 9
down 4
forward 8
down 6
down 1
down 9
down 1
up 7
forward 9
up 3
forward 7
up 7
down 2
forward 1
down 4
down 7
forward 7
forward 9
down 6
down 5
down 8
down 9
up 3
down 7
up 3
down 1
forward 1
forward 6
forward 2
down 6
forward 9
forward 1
up 2
forward 1
forward 3
forward 4
forward 7
forward 4
down 3
up 8
forward 9
down 7
forward 6
forward 3
down 6
forward 4
up 1
forward 3
down 3
forward 9
forward 2
forward 1
forward 4
up 6
forward 3
down 6
down 8
up 4
forward 8
forward 4
down 8
up 4
up 3
forward 9
forward 3
down 5
forward 7
forward 1
up 8
up 4
down 1
down 3
down 9
down 7
up 5
forward 6
down 1
forward 3
down 2
down 2
down 6
forward 2
down 5
forward 2
forward 1
up 9
down 1
forward 3
down 3
forward 6
down 1
forward 5
forward 7
down 6
forward 7
down 4
up 7
forward 1
down 7
down 8
down 9
down 6
down 1
forward 6
down 7
forward 2
down 2
up 1
up 2
down 3
down 4
up 2
forward 3
down 5
down 4
down 9
down 6
down 9
down 7
down 2
forward 7
forward 3
up 3
down 1
down 5
down 1
down 3
down 3
forward 9
down 1
down 7
up 4
down 1
down 6
up 9
down 9
forward 6
down 9
forward 3
forward 8
up 1
forward 3
down 8
forward 2
down 6
down 1
up 7
down 1
forward 3
down 2
forward 1
up 8
forward 8
forward 7
down 9
forward 3
+39
View File
@@ -0,0 +1,39 @@
use std::fs::File;
use std::io::{BufReader};
use std::io::prelude::*;
fn main(){
let file = File::open("./input.txt").expect("Read failed");
let reader = BufReader::new(file);
let mut current_depth = 0;
let mut current_horizontal = 0;
let mut aim = 0;
let all_lines = reader.lines();
for line in all_lines{
let line_as_string = line.unwrap();
let split_line = line_as_string.split_whitespace().collect::<Vec<&str>>();
let direction = split_line[0];
let distance = split_line[1].parse::<i32>().unwrap();
match direction {
"down" => aim += distance,
"up" => aim -= distance,
"forward" => {
current_horizontal += distance;
current_depth += aim * distance;
}
_ => println!("You should never be here")
}
}
println!("Depth: {}, Horizontal: {}, Result: {}", current_depth, current_horizontal, current_horizontal*current_depth)
}