day01 both
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/target
|
||||
**/*.rs.bk
|
||||
4
Cargo.lock
generated
Normal file
4
Cargo.lock
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
[[package]]
|
||||
name = "aoc_2018"
|
||||
version = "0.1.0"
|
||||
|
||||
6
Cargo.toml
Normal file
6
Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "aoc_2018"
|
||||
version = "0.1.0"
|
||||
authors = ["Johannes <jschaef@mail.uni-paderborn.de>"]
|
||||
|
||||
[dependencies]
|
||||
957
input/day01.txt
Normal file
957
input/day01.txt
Normal file
@@ -0,0 +1,957 @@
|
||||
-5
|
||||
-2
|
||||
+1
|
||||
+14
|
||||
+7
|
||||
+5
|
||||
-14
|
||||
-4
|
||||
-5
|
||||
-12
|
||||
+7
|
||||
-5
|
||||
+17
|
||||
+5
|
||||
-13
|
||||
-12
|
||||
+15
|
||||
+22
|
||||
-5
|
||||
-6
|
||||
-12
|
||||
+20
|
||||
+4
|
||||
+2
|
||||
+17
|
||||
-1
|
||||
+18
|
||||
-7
|
||||
-1
|
||||
-17
|
||||
+11
|
||||
-12
|
||||
-5
|
||||
-2
|
||||
+9
|
||||
+2
|
||||
-6
|
||||
-17
|
||||
-1
|
||||
+2
|
||||
-3
|
||||
+15
|
||||
+19
|
||||
+9
|
||||
-8
|
||||
+13
|
||||
+1
|
||||
+11
|
||||
+16
|
||||
+3
|
||||
-16
|
||||
-7
|
||||
-15
|
||||
-15
|
||||
+12
|
||||
+16
|
||||
+18
|
||||
+1
|
||||
-9
|
||||
+16
|
||||
-9
|
||||
-19
|
||||
+17
|
||||
+1
|
||||
-15
|
||||
+13
|
||||
-9
|
||||
-8
|
||||
-1
|
||||
+7
|
||||
+17
|
||||
+13
|
||||
+15
|
||||
-17
|
||||
-3
|
||||
+12
|
||||
-10
|
||||
+5
|
||||
+4
|
||||
-16
|
||||
+15
|
||||
+3
|
||||
+19
|
||||
+1
|
||||
-2
|
||||
+19
|
||||
-16
|
||||
-11
|
||||
+4
|
||||
-10
|
||||
-8
|
||||
+13
|
||||
+13
|
||||
+19
|
||||
-6
|
||||
-19
|
||||
+1
|
||||
-4
|
||||
+18
|
||||
+15
|
||||
+16
|
||||
-18
|
||||
+12
|
||||
+3
|
||||
-9
|
||||
+8
|
||||
+3
|
||||
-9
|
||||
+11
|
||||
+4
|
||||
+8
|
||||
+1
|
||||
+6
|
||||
-10
|
||||
-3
|
||||
+15
|
||||
+16
|
||||
+15
|
||||
+12
|
||||
-14
|
||||
+4
|
||||
-14
|
||||
-7
|
||||
-3
|
||||
+14
|
||||
+4
|
||||
+3
|
||||
-6
|
||||
-7
|
||||
+11
|
||||
-2
|
||||
-18
|
||||
+17
|
||||
-3
|
||||
+14
|
||||
+18
|
||||
+6
|
||||
+8
|
||||
+18
|
||||
-13
|
||||
-7
|
||||
+17
|
||||
-18
|
||||
-10
|
||||
-15
|
||||
+13
|
||||
-16
|
||||
+5
|
||||
-10
|
||||
+15
|
||||
-8
|
||||
-4
|
||||
+14
|
||||
+13
|
||||
-10
|
||||
-14
|
||||
+7
|
||||
+5
|
||||
+13
|
||||
-4
|
||||
+12
|
||||
+3
|
||||
+14
|
||||
-7
|
||||
+6
|
||||
+12
|
||||
+17
|
||||
-18
|
||||
+3
|
||||
-6
|
||||
-3
|
||||
-14
|
||||
-1
|
||||
+13
|
||||
+19
|
||||
+3
|
||||
+9
|
||||
+4
|
||||
+11
|
||||
+12
|
||||
+3
|
||||
+1
|
||||
+14
|
||||
+7
|
||||
-17
|
||||
+12
|
||||
+11
|
||||
+6
|
||||
-7
|
||||
+4
|
||||
-11
|
||||
-1
|
||||
+6
|
||||
-19
|
||||
-10
|
||||
-16
|
||||
-2
|
||||
-19
|
||||
+7
|
||||
+9
|
||||
-3
|
||||
+5
|
||||
+12
|
||||
+15
|
||||
+8
|
||||
+11
|
||||
+1
|
||||
+8
|
||||
+15
|
||||
-9
|
||||
-9
|
||||
-8
|
||||
-10
|
||||
-3
|
||||
-16
|
||||
+7
|
||||
-17
|
||||
+9
|
||||
-5
|
||||
+16
|
||||
-15
|
||||
-4
|
||||
+15
|
||||
-5
|
||||
-25
|
||||
-6
|
||||
+1
|
||||
+4
|
||||
+17
|
||||
+19
|
||||
-13
|
||||
+17
|
||||
+7
|
||||
+19
|
||||
+2
|
||||
+4
|
||||
+10
|
||||
+16
|
||||
-9
|
||||
+19
|
||||
+13
|
||||
+3
|
||||
-10
|
||||
+9
|
||||
+5
|
||||
+1
|
||||
+18
|
||||
-11
|
||||
-14
|
||||
-4
|
||||
-5
|
||||
-13
|
||||
-7
|
||||
-12
|
||||
+2
|
||||
+3
|
||||
+6
|
||||
-16
|
||||
-1
|
||||
+13
|
||||
-10
|
||||
-4
|
||||
-1
|
||||
-3
|
||||
+9
|
||||
+22
|
||||
+4
|
||||
-18
|
||||
+17
|
||||
+11
|
||||
-21
|
||||
-17
|
||||
-18
|
||||
-8
|
||||
+12
|
||||
+6
|
||||
+15
|
||||
+12
|
||||
+10
|
||||
-7
|
||||
+18
|
||||
+10
|
||||
-8
|
||||
-10
|
||||
-18
|
||||
+11
|
||||
-17
|
||||
+25
|
||||
+15
|
||||
-9
|
||||
-19
|
||||
+38
|
||||
-3
|
||||
-6
|
||||
-23
|
||||
+34
|
||||
-25
|
||||
-5
|
||||
-12
|
||||
+25
|
||||
+14
|
||||
+17
|
||||
+30
|
||||
+3
|
||||
+9
|
||||
-8
|
||||
+16
|
||||
+21
|
||||
+21
|
||||
+4
|
||||
-12
|
||||
+23
|
||||
-13
|
||||
+9
|
||||
+3
|
||||
+6
|
||||
+13
|
||||
+15
|
||||
+6
|
||||
-7
|
||||
+15
|
||||
+12
|
||||
-10
|
||||
+13
|
||||
+12
|
||||
-7
|
||||
+13
|
||||
+4
|
||||
-9
|
||||
+18
|
||||
-10
|
||||
+5
|
||||
+8
|
||||
-7
|
||||
+2
|
||||
-14
|
||||
-12
|
||||
-1
|
||||
-6
|
||||
-16
|
||||
-18
|
||||
-3
|
||||
+1
|
||||
+12
|
||||
-6
|
||||
+15
|
||||
-17
|
||||
+15
|
||||
+13
|
||||
+6
|
||||
-15
|
||||
+26
|
||||
+1
|
||||
-21
|
||||
-3
|
||||
-21
|
||||
-4
|
||||
+14
|
||||
-1
|
||||
-19
|
||||
-11
|
||||
+13
|
||||
-10
|
||||
-14
|
||||
+2
|
||||
-17
|
||||
-23
|
||||
+25
|
||||
-16
|
||||
+8
|
||||
-30
|
||||
+17
|
||||
-44
|
||||
+13
|
||||
-19
|
||||
+5
|
||||
-9
|
||||
-12
|
||||
+10
|
||||
+14
|
||||
+17
|
||||
+24
|
||||
-15
|
||||
+7
|
||||
-61
|
||||
-103
|
||||
-18
|
||||
+21
|
||||
-22
|
||||
-6
|
||||
-9
|
||||
-6
|
||||
-9
|
||||
-7
|
||||
-15
|
||||
-17
|
||||
+4
|
||||
-1
|
||||
+10
|
||||
+8
|
||||
+14
|
||||
-4
|
||||
+15
|
||||
-16
|
||||
-6
|
||||
-16
|
||||
-15
|
||||
-12
|
||||
+15
|
||||
+10
|
||||
-15
|
||||
+3
|
||||
+15
|
||||
-10
|
||||
-17
|
||||
+3
|
||||
-5
|
||||
-12
|
||||
+4
|
||||
+3
|
||||
-37
|
||||
-7
|
||||
+14
|
||||
-18
|
||||
-8
|
||||
+6
|
||||
-11
|
||||
+14
|
||||
+30
|
||||
+7
|
||||
+23
|
||||
+39
|
||||
-12
|
||||
+11
|
||||
-8
|
||||
+11
|
||||
-1
|
||||
+56
|
||||
-28
|
||||
-12
|
||||
+7
|
||||
+34
|
||||
+47
|
||||
+21
|
||||
+88
|
||||
+61
|
||||
+18
|
||||
+10
|
||||
-99
|
||||
-287
|
||||
+26
|
||||
-858
|
||||
-209
|
||||
-61255
|
||||
+2
|
||||
-7
|
||||
-8
|
||||
+12
|
||||
+18
|
||||
+17
|
||||
-14
|
||||
-2
|
||||
+14
|
||||
+4
|
||||
+3
|
||||
+3
|
||||
-15
|
||||
+21
|
||||
+3
|
||||
+20
|
||||
+1
|
||||
+3
|
||||
-1
|
||||
-25
|
||||
-2
|
||||
+7
|
||||
-9
|
||||
+17
|
||||
-19
|
||||
-6
|
||||
-13
|
||||
+2
|
||||
-4
|
||||
-3
|
||||
-14
|
||||
-8
|
||||
+12
|
||||
-20
|
||||
+17
|
||||
-40
|
||||
+11
|
||||
+3
|
||||
-20
|
||||
-16
|
||||
-18
|
||||
-3
|
||||
-6
|
||||
-10
|
||||
+4
|
||||
+20
|
||||
-12
|
||||
-3
|
||||
+11
|
||||
+16
|
||||
-2
|
||||
+4
|
||||
-9
|
||||
+28
|
||||
-12
|
||||
+5
|
||||
+17
|
||||
-13
|
||||
+35
|
||||
+25
|
||||
+2
|
||||
+35
|
||||
-17
|
||||
-8
|
||||
+31
|
||||
+3
|
||||
-39
|
||||
-46
|
||||
+3
|
||||
-96
|
||||
-18
|
||||
-14
|
||||
-14
|
||||
-12
|
||||
+9
|
||||
+15
|
||||
+3
|
||||
+18
|
||||
-8
|
||||
+1
|
||||
-2
|
||||
-15
|
||||
+13
|
||||
+14
|
||||
-13
|
||||
-3
|
||||
+7
|
||||
-11
|
||||
-15
|
||||
-17
|
||||
-12
|
||||
-15
|
||||
-17
|
||||
+9
|
||||
+7
|
||||
-10
|
||||
-8
|
||||
-3
|
||||
+9
|
||||
+16
|
||||
+3
|
||||
+15
|
||||
-14
|
||||
-5
|
||||
-9
|
||||
+1
|
||||
-3
|
||||
+10
|
||||
+3
|
||||
-18
|
||||
-21
|
||||
-11
|
||||
+2
|
||||
-17
|
||||
-17
|
||||
-7
|
||||
-11
|
||||
+8
|
||||
+11
|
||||
-2
|
||||
-7
|
||||
-1
|
||||
-19
|
||||
-2
|
||||
-16
|
||||
+1
|
||||
+5
|
||||
+11
|
||||
+18
|
||||
+5
|
||||
+17
|
||||
+2
|
||||
-5
|
||||
-2
|
||||
+19
|
||||
-4
|
||||
+12
|
||||
+2
|
||||
+20
|
||||
-13
|
||||
-20
|
||||
-12
|
||||
+10
|
||||
+4
|
||||
+14
|
||||
-1
|
||||
+12
|
||||
+13
|
||||
-10
|
||||
-13
|
||||
-8
|
||||
-1
|
||||
+14
|
||||
+16
|
||||
+6
|
||||
+10
|
||||
+18
|
||||
+19
|
||||
+14
|
||||
-1
|
||||
+6
|
||||
-13
|
||||
-9
|
||||
+10
|
||||
-20
|
||||
+1
|
||||
+1
|
||||
-12
|
||||
+6
|
||||
+7
|
||||
-15
|
||||
-13
|
||||
-2
|
||||
+14
|
||||
-19
|
||||
-5
|
||||
-10
|
||||
-17
|
||||
+15
|
||||
-5
|
||||
+8
|
||||
+20
|
||||
+9
|
||||
+14
|
||||
-6
|
||||
+4
|
||||
-3
|
||||
+19
|
||||
+18
|
||||
-14
|
||||
-3
|
||||
-8
|
||||
+4
|
||||
+16
|
||||
+7
|
||||
-3
|
||||
-5
|
||||
+19
|
||||
-2
|
||||
+12
|
||||
+19
|
||||
+12
|
||||
-10
|
||||
-17
|
||||
-40
|
||||
+1
|
||||
-11
|
||||
+19
|
||||
-27
|
||||
-9
|
||||
+45
|
||||
-27
|
||||
+31
|
||||
+1
|
||||
-25
|
||||
+41
|
||||
+58
|
||||
-5
|
||||
-39
|
||||
-112
|
||||
+1
|
||||
-8
|
||||
-3
|
||||
-6
|
||||
-15
|
||||
-3
|
||||
-9
|
||||
+13
|
||||
+13
|
||||
-24
|
||||
+3
|
||||
-4
|
||||
+13
|
||||
-19
|
||||
-21
|
||||
+16
|
||||
-20
|
||||
-10
|
||||
-15
|
||||
-16
|
||||
-1
|
||||
-13
|
||||
-12
|
||||
-17
|
||||
+16
|
||||
+17
|
||||
+16
|
||||
-2
|
||||
-9
|
||||
-1
|
||||
-19
|
||||
+8
|
||||
+5
|
||||
-18
|
||||
+17
|
||||
-19
|
||||
-19
|
||||
-12
|
||||
+14
|
||||
-18
|
||||
-12
|
||||
+10
|
||||
+9
|
||||
-13
|
||||
-8
|
||||
+19
|
||||
+16
|
||||
+13
|
||||
-5
|
||||
+2
|
||||
+16
|
||||
-15
|
||||
+17
|
||||
+9
|
||||
+10
|
||||
+2
|
||||
-5
|
||||
+20
|
||||
+16
|
||||
-8
|
||||
-4
|
||||
+16
|
||||
+6
|
||||
-7
|
||||
-2
|
||||
-11
|
||||
+18
|
||||
+11
|
||||
-1
|
||||
+2
|
||||
+5
|
||||
+3
|
||||
+40
|
||||
-38
|
||||
+22
|
||||
-11
|
||||
-15
|
||||
-27
|
||||
+7
|
||||
-25
|
||||
+4
|
||||
-11
|
||||
-15
|
||||
-12
|
||||
+15
|
||||
-20
|
||||
-13
|
||||
+9
|
||||
-13
|
||||
+7
|
||||
-5
|
||||
+10
|
||||
+18
|
||||
+24
|
||||
+8
|
||||
+15
|
||||
-6
|
||||
-10
|
||||
-10
|
||||
-1
|
||||
-4
|
||||
-3
|
||||
-17
|
||||
+7
|
||||
-15
|
||||
+20
|
||||
-19
|
||||
-18
|
||||
-14
|
||||
-4
|
||||
-26
|
||||
-22
|
||||
-5
|
||||
+17
|
||||
+6
|
||||
+13
|
||||
+9
|
||||
+7
|
||||
+28
|
||||
-11
|
||||
-8
|
||||
+57
|
||||
-23
|
||||
-37
|
||||
-11
|
||||
-43
|
||||
+3
|
||||
-14
|
||||
+3
|
||||
-14
|
||||
+13
|
||||
-15
|
||||
+6
|
||||
-23
|
||||
+8
|
||||
+12
|
||||
-8
|
||||
+15
|
||||
+16
|
||||
+2
|
||||
-9
|
||||
-14
|
||||
+18
|
||||
+19
|
||||
-1
|
||||
-43
|
||||
-2
|
||||
-3
|
||||
-13
|
||||
+5
|
||||
-6
|
||||
-13
|
||||
-20
|
||||
+15
|
||||
+13
|
||||
-12
|
||||
+3
|
||||
+2
|
||||
+3
|
||||
+11
|
||||
+7
|
||||
-17
|
||||
-8
|
||||
-13
|
||||
+18
|
||||
-17
|
||||
-2
|
||||
-13
|
||||
+5
|
||||
+3
|
||||
+1
|
||||
-11
|
||||
+20
|
||||
+4
|
||||
+2
|
||||
-1
|
||||
-19
|
||||
-8
|
||||
-19
|
||||
+1
|
||||
-6
|
||||
-12
|
||||
+8
|
||||
-6
|
||||
-5
|
||||
+1
|
||||
+6
|
||||
+9
|
||||
-12
|
||||
+13
|
||||
+10
|
||||
-14
|
||||
+20
|
||||
-11
|
||||
+9
|
||||
+9
|
||||
-3
|
||||
-18
|
||||
+9
|
||||
-5
|
||||
+9
|
||||
+2
|
||||
-9
|
||||
-19
|
||||
-4
|
||||
-10
|
||||
+7
|
||||
-8
|
||||
+68
|
||||
+30
|
||||
+2
|
||||
-9
|
||||
+12
|
||||
-65
|
||||
+15
|
||||
-26
|
||||
-9
|
||||
-15
|
||||
-67
|
||||
-38
|
||||
-36
|
||||
-37
|
||||
-7
|
||||
+18
|
||||
-20
|
||||
-44
|
||||
+35
|
||||
-70
|
||||
-85
|
||||
+14
|
||||
+18
|
||||
-499
|
||||
+209
|
||||
-61690
|
||||
-5
|
||||
+15
|
||||
-4
|
||||
+3
|
||||
+5
|
||||
+6
|
||||
+15
|
||||
+16
|
||||
+3
|
||||
-4
|
||||
+12
|
||||
-14
|
||||
-7
|
||||
-9
|
||||
-15
|
||||
+2
|
||||
-1
|
||||
-11
|
||||
-21
|
||||
-8
|
||||
-2
|
||||
-15
|
||||
+19
|
||||
+7
|
||||
-10
|
||||
-19
|
||||
-3
|
||||
-14
|
||||
+4
|
||||
+9
|
||||
+13
|
||||
-16
|
||||
-14
|
||||
+2
|
||||
+10
|
||||
-19
|
||||
+6
|
||||
+16
|
||||
+11
|
||||
+7
|
||||
-14
|
||||
-9
|
||||
-21
|
||||
-7
|
||||
-12
|
||||
+2
|
||||
+12
|
||||
-6
|
||||
+125503
|
||||
2
src/lib.rs
Normal file
2
src/lib.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
pub mod tasks;
|
||||
pub mod utils;
|
||||
4
src/main.rs
Normal file
4
src/main.rs
Normal file
@@ -0,0 +1,4 @@
|
||||
fn main() {
|
||||
aoc_2018::tasks::day01::task1();
|
||||
aoc_2018::tasks::day01::task2();
|
||||
}
|
||||
36
src/tasks/day01.rs
Normal file
36
src/tasks/day01.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
use std::collections::HashSet;
|
||||
use utils;
|
||||
|
||||
pub fn task1() {
|
||||
let contents = utils::read_file("input/day01.txt");
|
||||
|
||||
let mut frequency = 0;
|
||||
for line in contents.split_whitespace() {
|
||||
let number: i32 = line.parse().unwrap();
|
||||
frequency += number;
|
||||
}
|
||||
|
||||
println!("Result: {}", frequency);
|
||||
}
|
||||
|
||||
pub fn task2() {
|
||||
let contents = utils::read_file("input/day01.txt");
|
||||
|
||||
let mut seen = HashSet::new();
|
||||
|
||||
let mut frequency = 0;
|
||||
seen.insert(frequency);
|
||||
let changes: Vec<i32> = contents.lines().map(|line| line.parse().unwrap()).collect();
|
||||
|
||||
loop {
|
||||
for number in changes.iter() {
|
||||
frequency += number;
|
||||
if seen.contains(&frequency) {
|
||||
println!("{} was there already!", frequency);
|
||||
return;
|
||||
}
|
||||
|
||||
seen.insert(frequency);
|
||||
}
|
||||
}
|
||||
}
|
||||
1
src/tasks/mod.rs
Normal file
1
src/tasks/mod.rs
Normal file
@@ -0,0 +1 @@
|
||||
pub mod day01;
|
||||
11
src/utils.rs
Normal file
11
src/utils.rs
Normal file
@@ -0,0 +1,11 @@
|
||||
use std::fs::File;
|
||||
use std::io::prelude::*;
|
||||
|
||||
pub fn read_file(path: &str) -> String {
|
||||
let mut f = File::open(path).expect(&format!("file '{}' not found", path));
|
||||
|
||||
let mut contents = String::new();
|
||||
f.read_to_string(&mut contents)
|
||||
.expect("something went wrong reading the file");
|
||||
contents
|
||||
}
|
||||
Reference in New Issue
Block a user