wip, transfer
This commit is contained in:
parent
f51df8571c
commit
c8d4d12648
1 changed files with 63 additions and 8 deletions
|
@ -230,7 +230,27 @@ fn part2(input: String) -> Result<usize> {
|
||||||
|
|
||||||
// algo
|
// algo
|
||||||
let a_start = Instant::now();
|
let a_start = Instant::now();
|
||||||
let answer = 0;
|
let mut path = vec![];
|
||||||
|
loop {
|
||||||
|
// reached end
|
||||||
|
if paths[0].1.position.0 == paths[1].1.position.0
|
||||||
|
&& paths[0].1.position.1 == paths[1].1.position.1
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
answer += 1;
|
||||||
|
for path in paths.iter_mut() {
|
||||||
|
let next = path
|
||||||
|
.1
|
||||||
|
.connects_to()
|
||||||
|
.into_iter()
|
||||||
|
.filter(|pipe| pipe.0 != path.0.position.0 || pipe.1 != path.0.position.1)
|
||||||
|
.next()
|
||||||
|
.map(|pos| pipes.get(&pos))
|
||||||
|
.unwrap();
|
||||||
|
*path = (path.1, next);
|
||||||
|
}
|
||||||
|
}
|
||||||
let algo_time = a_start.elapsed();
|
let algo_time = a_start.elapsed();
|
||||||
|
|
||||||
// output
|
// output
|
||||||
|
@ -255,21 +275,56 @@ async fn main() -> Result<()> {
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
static DATA: &'static str = "..F7.
|
#[test]
|
||||||
|
fn test_part_1() -> Result<()> {
|
||||||
|
assert_eq!(
|
||||||
|
part1(
|
||||||
|
"..F7.
|
||||||
.FJ|.
|
.FJ|.
|
||||||
SJ.L7
|
SJ.L7
|
||||||
|F--J
|
|F--J
|
||||||
LJ...";
|
LJ..."
|
||||||
|
.to_owned()
|
||||||
#[test]
|
)?,
|
||||||
fn test_part_1() -> Result<()> {
|
8
|
||||||
assert_eq!(part1(DATA.to_owned())?, 8);
|
);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_part_2() -> Result<()> {
|
fn test_part_2() -> Result<()> {
|
||||||
assert_eq!(part2(DATA.to_owned())?, 0);
|
assert_eq!(
|
||||||
|
part2(
|
||||||
|
".F----7F7F7F7F-7....
|
||||||
|
.|F--7||||||||FJ....
|
||||||
|
.||.FJ||||||||L7....
|
||||||
|
FJL7L7LJLJ||LJ.L-7..
|
||||||
|
L--J.L7...LJS7F-7L7.
|
||||||
|
....F-J..F7FJ|L7L7L7
|
||||||
|
....L7.F7||L7|.L7L7|
|
||||||
|
.....|FJLJ|FJ|F7|.LJ
|
||||||
|
....FJL-7.||.||||...
|
||||||
|
....L---J.LJ.LJLJ..."
|
||||||
|
.to_owned(),
|
||||||
|
)?,
|
||||||
|
8
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
part2(
|
||||||
|
"FF7FSF7F7F7F7F7F---7
|
||||||
|
L|LJ||||||||||||F--J
|
||||||
|
FL-7LJLJ||||||LJL-77
|
||||||
|
F--JF--7||LJLJ7F7FJ-
|
||||||
|
L---JF-JLJ.||-FJLJJ7
|
||||||
|
|F|F-JF---7F7-L7L|7|
|
||||||
|
|FFJF7L7F-JF7|JL---7
|
||||||
|
7-L-JL7||F7|L7F-7F7|
|
||||||
|
L.L7LFJ|||||FJL7||LJ
|
||||||
|
L7JLJL-JLJLJL--JLJ.L"
|
||||||
|
.to_owned(),
|
||||||
|
)?,
|
||||||
|
10
|
||||||
|
);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue