diff --git a/01/main.rs b/01/main.rs
index 93528c2..7788c29 100644
--- a/01/main.rs
+++ b/01/main.rs
@@ -22,10 +22,55 @@ fn read_lines
(filename: P) -> io::Result>>
where
P: AsRef,
{
+ // note that this discards a final newline
let file = File::open(filename)?;
Ok(io::BufReader::new(file).lines())
}
-fn part_one() {}
+fn part_one() {
+ if let Ok(lines) = read_lines("./inputs/input") {
+ let mut biggest = 0;
+ let mut accumulator = 0;
+ for line in lines {
+ if let Ok(calories) = line {
+ if calories != "" {
+ accumulator += calories.parse::().unwrap();
+ } else {
+ if accumulator > biggest {
+ biggest = accumulator
+ }
+ accumulator = 0;
+ }
+ }
+ }
+ // catching final elf
+ if accumulator > biggest {
+ biggest = accumulator
+ }
+ println!("{}", biggest);
+ }
+}
-fn part_two() {}
+fn part_two() {
+ if let Ok(lines) = read_lines("./inputs/input") {
+ let mut elves = Vec::new();
+ let mut accumulator = 0;
+ for line in lines {
+ if let Ok(calories) = line {
+ if calories != "" {
+ accumulator += calories.parse::().unwrap();
+ } else {
+ elves.push(accumulator);
+ accumulator = 0;
+ }
+ }
+ }
+ // catching final elf
+ elves.push(accumulator);
+ elves.sort_unstable();
+ println!(
+ "{}",
+ elves.pop().unwrap() + elves.pop().unwrap() + elves.pop().unwrap()
+ );
+ }
+}
diff --git a/main.rs.tmpl b/main.rs.tmpl
index 93528c2..cad33f6 100644
--- a/main.rs.tmpl
+++ b/main.rs.tmpl
@@ -22,6 +22,7 @@ fn read_lines(filename: P) -> io::Result>>
where
P: AsRef,
{
+ // note that this discards a final newline
let file = File::open(filename)?;
Ok(io::BufReader::new(file).lines())
}