summaryrefslogtreecommitdiffstats
path: root/src/2020/9/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/2020/9/mod.rs')
-rw-r--r--src/2020/9/mod.rs22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/2020/9/mod.rs b/src/2020/9/mod.rs
index c067ca0..0d2dd6f 100644
--- a/src/2020/9/mod.rs
+++ b/src/2020/9/mod.rs
@@ -1,10 +1,12 @@
+use crate::prelude::*;
+
const WINDOW: usize = 25;
-pub fn parse(fh: std::fs::File) -> anyhow::Result<Vec<i64>> {
- Ok(crate::util::parse::ints(crate::util::parse::lines(fh)).collect())
+pub fn parse(fh: File) -> Result<Vec<i64>> {
+ Ok(parse::ints(parse::lines(fh)).collect())
}
-pub fn part1(list: Vec<i64>) -> anyhow::Result<i64> {
+pub fn part1(list: Vec<i64>) -> Result<i64> {
for i in 0..(list.len() - WINDOW) {
let set = &list[i..i + WINDOW];
let n = list[i + WINDOW];
@@ -13,10 +15,10 @@ pub fn part1(list: Vec<i64>) -> anyhow::Result<i64> {
}
}
- Err(anyhow::anyhow!("failed to find invalid number"))
+ Err(anyhow!("failed to find invalid number"))
}
-pub fn part2(list: Vec<i64>) -> anyhow::Result<i64> {
+pub fn part2(list: Vec<i64>) -> Result<i64> {
let mut invalid = None;
for i in 0..(list.len() - WINDOW) {
let set = &list[i..i + WINDOW];
@@ -26,7 +28,7 @@ pub fn part2(list: Vec<i64>) -> anyhow::Result<i64> {
}
}
if invalid.is_none() {
- return Err(anyhow::anyhow!("failed to find invalid number"));
+ return Err(anyhow!("failed to find invalid number"));
}
let invalid = invalid.unwrap();
@@ -40,9 +42,7 @@ pub fn part2(list: Vec<i64>) -> anyhow::Result<i64> {
}
}
- Err(anyhow::anyhow!(
- "failed to find sequence summing to invalid number"
- ))
+ Err(anyhow!("failed to find sequence summing to invalid number"))
}
fn valid(set: &[i64], n: i64) -> bool {
@@ -64,11 +64,11 @@ fn valid(set: &[i64], n: i64) -> bool {
#[test]
fn test() {
assert_eq!(
- part1(parse(crate::util::data(2020, 9).unwrap()).unwrap()).unwrap(),
+ part1(parse(parse::data(2020, 9).unwrap()).unwrap()).unwrap(),
373803594
);
assert_eq!(
- part2(parse(crate::util::data(2020, 9).unwrap()).unwrap()).unwrap(),
+ part2(parse(parse::data(2020, 9).unwrap()).unwrap()).unwrap(),
51152360
);
}