From ff32088cffa839acd41b68fdce1db1d6c7fd6165 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 1 Dec 2020 22:35:23 -0500 Subject: puzzle 1-1 --- src/2020/mod.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/2020/mod.rs (limited to 'src/2020/mod.rs') diff --git a/src/2020/mod.rs b/src/2020/mod.rs new file mode 100644 index 0000000..87c213b --- /dev/null +++ b/src/2020/mod.rs @@ -0,0 +1,33 @@ +use anyhow::Context as _; +use std::io::BufRead as _; + +pub fn run(day: u8, puzzle: u8) -> anyhow::Result<()> { + match (day, puzzle) { + (1, 1) => report_repair(), + _ => Err(anyhow::anyhow!("unknown puzzle {}-{}", day, puzzle)), + } +} + +fn report_repair() -> anyhow::Result<()> { + let f = std::fs::File::open("data/1-1.txt") + .context("couldn't find data file")?; + let f = std::io::BufReader::new(f); + let ints: anyhow::Result> = f + .lines() + .map(|l| { + l.context("failed to read a line")? + .parse() + .context("failed to parse line into an integer") + }) + .collect(); + let ints = ints?; + for i in &ints { + for j in &ints { + if i + j == 2020 { + println!("{} + {} = {}", i, j, i * j); + return Ok(()); + } + } + } + Err(anyhow::anyhow!("no numbers summing to 2020 found")) +} -- cgit v1.2.3-54-g00ecf