1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! # Day 24: Electromagnetic Moat
//!
//! The CPU itself is a large, black building surrounded by a bottomless pit. Enormous metal tubes
//! extend outward from the side of the building at regular intervals and descend down into the
//! void. There's no way to cross, but you need to get inside.
//!
//! No way, of course, other than building a **bridge** out of the magnetic components strewn about
//! nearby.
//!
//! Each component has two **ports**, one on each end. The ports come in all different types, and
//! only matching types can be connected. You take an inventory of the components by their port
//! types (your puzzle input). Each port is identified by the number of **pins** it uses; more pins
//! mean a stronger connection for your bridge. A `3/7` component, for example, has a type-`3` port
//! on one side, and a type-`7` port on the other.
//!
//! Your side of the pit is metallic; a perfect surface to connect a magnetic, **zero-pin port**.
//! Because of this, the first port you use must be of type `0`. It doesn't matter what type of port
//! you end with; your goal is just to make the bridge as strong as possible.
//!
//! The **strength** of a bridge is the sum of the port types in each component. For example, if
//! your bridge is made of components `0/3`, `3/7`, and `7/4`, your bridge has a strength of
//! `0+3 + 3+7 + 7+4 = 24`.
//!
//! For example, suppose you had the following components:
//!
//! ```txt
//! 0/2
//! 2/2
//! 2/3
//! 3/4
//! 3/5
//! 0/1
//! 10/1
//! 9/10
//! ```
//!
//! With them, you could make the following valid bridges:
//!
//! - `0/1`
//! - `0/1`--`10/1`
//! - `0/1`--`10/1`--`9/10`
//! - `0/2`
//! - `0/2`--`2/3`
//! - `0/2`--`2/3`--`3/4`
//! - `0/2`--`2/3`--`3/5`
//! - `0/2`--`2/2`
//! - `0/2`--`2/2`--`2/3`
//! - `0/2`--`2/2`--`2/3`--`3/4`
//! - `0/2`--`2/2`--`2/3`--`3/5`
//!
//! (Note how, as shown by `10/1`, order of ports within a component doesn't matter. However, you
//! may only use each port on a component once.)
//!
//! Of these bridges, the **strongest** one is `0/1`--`10/1`--`9/10`; it has a strength of
//! `0+1 + 1+10 + 10+9 = 31`.
//!
//! **What is the strength of the strongest bridge you can make** with the components you have
//! available?

use anyhow::Result;

pub const INPUT: &str = include_str!("d24.txt");

pub fn solve_part_one(input: &str) -> Result<i64> {
    Ok(0)
}

pub fn solve_part_two(input: &str) -> Result<i64> {
    Ok(0)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn part_one() {}

    #[test]
    fn part_two() {}
}