From 86bac31392a76da84817eec020d2b84d099b3cc1 Mon Sep 17 00:00:00 2001 From: mhsn Date: Wed, 18 Mar 2026 21:48:13 +0000 Subject: add other challenges support --- 2025/11/rust/Cargo.lock | 7 ---- 2025/11/rust/Cargo.toml | 6 ---- 2025/11/rust/src/main.rs | 84 ------------------------------------------------ 3 files changed, 97 deletions(-) delete mode 100644 2025/11/rust/Cargo.lock delete mode 100644 2025/11/rust/Cargo.toml delete mode 100644 2025/11/rust/src/main.rs (limited to '2025/11/rust') diff --git a/2025/11/rust/Cargo.lock b/2025/11/rust/Cargo.lock deleted file mode 100644 index ab53f99..0000000 --- a/2025/11/rust/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "aoc_2025-11" -version = "0.1.0" diff --git a/2025/11/rust/Cargo.toml b/2025/11/rust/Cargo.toml deleted file mode 100644 index 9fbcc03..0000000 --- a/2025/11/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "aoc_2025-11" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/2025/11/rust/src/main.rs b/2025/11/rust/src/main.rs deleted file mode 100644 index 522d7ad..0000000 --- a/2025/11/rust/src/main.rs +++ /dev/null @@ -1,84 +0,0 @@ -use std::{cell::RefCell, collections::HashMap, io, rc::Rc}; - -#[derive(PartialEq, Eq, Hash, Debug)] -struct Node { - device: String, - dac: bool, - fft: bool, -} - -fn main() { - let adj = io::stdin() - .lines() - .flatten() - .map(|line| { - let (k, v) = line.split_once(": ").unwrap(); - ( - String::from(k), - String::from(v) - .split_whitespace() - .map(String::from) - .collect(), - ) - }) - .collect::>>(); - - let cache = Rc::new(RefCell::new(HashMap::new())); - - let silver = paths_from( - Node { - device: String::from("you"), - dac: true, - fft: true, - }, - &adj, - Rc::clone(&cache), - ); - let gold = paths_from( - Node { - device: String::from("svr"), - dac: false, - fft: false, - }, - &adj, - Rc::clone(&cache), - ); - - println!("silver: {silver}"); - println!("gold: {gold}"); -} - -fn paths_from( - curr: Node, - adj: &HashMap>, - cache: Rc>>, -) -> usize { - if curr.device == "out" { - if curr.dac && curr.fft { - return 1; - } - return 0; - } - - let Some(&v) = cache.borrow().get(&curr) else { - let paths = adj - .get(&curr.device) - .unwrap() - .iter() - .map(|n| { - paths_from( - Node { - device: n.clone(), - dac: curr.dac || curr.device == "dac", - fft: curr.fft || curr.device == "fft", - }, - adj, - Rc::clone(&cache), - ) - }) - .sum(); - cache.borrow_mut().insert(curr, paths); - return paths; - }; - return v; -} -- cgit v1.2.3