diff options
Diffstat (limited to '2023')
-rw-r--r-- | 2023/Cargo.toml | 2 | ||||
-rw-r--r-- | 2023/day11/src/lib.rs | 26 | ||||
-rw-r--r-- | 2023/day13/Cargo.toml | 8 | ||||
-rw-r--r-- | 2023/day13/example.txt | 15 | ||||
-rw-r--r-- | 2023/day13/input.txt | 1361 | ||||
-rw-r--r-- | 2023/day13/src/lib.rs | 146 | ||||
-rw-r--r-- | 2023/day15/Cargo.toml | 8 | ||||
-rw-r--r-- | 2023/day15/example.txt | 1 | ||||
-rw-r--r-- | 2023/day15/input.txt | 1 | ||||
-rw-r--r-- | 2023/day15/src/lib.rs | 56 |
10 files changed, 1623 insertions, 1 deletions
diff --git a/2023/Cargo.toml b/2023/Cargo.toml index effa9b6..7f6cc11 100644 --- a/2023/Cargo.toml +++ b/2023/Cargo.toml @@ -1,2 +1,2 @@ [workspace] -members = ["day1", "day2", "day3", "day4", "day5", "day6", "day7", "day7_2", "day8", "day9", "day11"] +members = ["day1", "day2", "day3", "day4", "day5", "day6", "day7", "day7_2", "day8", "day9", "day11", "day13", "day15"] diff --git a/2023/day11/src/lib.rs b/2023/day11/src/lib.rs index 938de38..66c95c4 100644 --- a/2023/day11/src/lib.rs +++ b/2023/day11/src/lib.rs @@ -67,6 +67,32 @@ pub fn part1(input: &str) -> u32 { pub fn part2(input: &str) -> u32 { let mut res: u32 = 0; + let mut m: Vec<Vec<i16>> = input + .trim_end() + .split('\n') + .map(|y| y.chars().map(|x| if x == '#' { 1 } else { 0 }).collect()) + .collect(); + + expand(&mut m, 1); + let mut hs: Vec<(usize, usize)> = vec![]; + let rows = m.len(); + let cols = m[0].len(); + for i in 0..rows { + for j in 0..cols { + if m[i][j] > 0 { + hs.push((i, j)); + } + } + } + + let n = hs.len(); + for i in 0..n { + for j in i + 1..n { + res += ((hs[j].1 as i16 - hs[i].1 as i16).abs() + + (hs[j].0 as i16 - hs[i].0 as i16).abs()) as u32; + } + } + res } diff --git a/2023/day13/Cargo.toml b/2023/day13/Cargo.toml new file mode 100644 index 0000000..36c9510 --- /dev/null +++ b/2023/day13/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day13" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2023/day13/example.txt b/2023/day13/example.txt new file mode 100644 index 0000000..3b6b5cc --- /dev/null +++ b/2023/day13/example.txt @@ -0,0 +1,15 @@ +#.##..##. +..#.##.#. +##......# +##......# +..#.##.#. +..##..##. +#.#.##.#. + +#...##..# +#....#..# +..##..### +#####.##. +#####.##. +..##..### +#....#..# diff --git a/2023/day13/input.txt b/2023/day13/input.txt new file mode 100644 index 0000000..023748d --- /dev/null +++ b/2023/day13/input.txt @@ -0,0 +1,1361 @@ +######....####### +..#...####...#..# +.###.#....#.###.# +....##.##.##....# +.##....##....##.. +.####...#..####.# +##..#..##..#..### +..#.########.#... +#..#.######.#..#. +.##..#.##.#..##.. +###.#.####.#.###. +###.#.####.#.###. +.##..#.##.#..##.. +#..#.######.#..#. +..#.########.#... + +......##....# +.#.#.##...#.# +.##.#..#..#.# +.##.#..#..#.# +.#.#.##...#.# +......##..#.# +....#.#....#. +...#.###...## +.#.##.#.###.. +###.....##.## +#.##..##...#. +###.#..##.##. +#..#######..# +#..#######..# +###.#..##.##. + +#.#.#.#.. +#.#.#.##. +#.#.#.##. +#.#.#.#.. +...#..... +#..#.##.. +....#...# +####....# +#####.... +.###.#.## +####...## +.#.#...#. +#....#.#. + +.########..## +.###..###.#.# +###....###.## +#...##...##.# +.########.#.. +#...##..##### +#.##..##.#... +....##....#.. +....##....#.. + +.........##..#..# +.#....#.######.## +.#....#.######.## +.........##.....# +.######.#..#.#..# +##.##.###.##..#.# +#########...#..#. +###..###...#.#### +#......#....#..#. +##....##.....###. +..####..##.#....# +.............#.#. +..#..#...####.... + +##......##. +....##..... +##..##..##. +..#.##.#... +..........# +..##..##... +####..####. +####..####. +#.##..##.#. + +......#..###### +######.#....... +.####.###..##.. +..##..##.#....# +.####.#...#..#. +..##..#.##....# +#.##.##..#....# +##..####....... +.####..#.###### +##..##..#.....# +......####.##.# +#....#......... +######..##....# +######....#..#. +#....#####....# + +##........... +..########### +##..###..###. +##.########## +..#.......... +##...#....#.. +..###..##..## +##.##.#..#.## +..#.###.####. +###.###..###. +....#..##..#. +##.#.#....#.# +...####..#### +....#.####.#. +##.##......## + +#.#....##.. +#..##...#.# +#.###..##.# +#.###..##.# +#..##...#.# +#.#....##.. +.#..####.#. +..#..###### +#..###.#.#. +.#.######## +.#.######## +#..###.#.#. +..#...##### + +....###.#.##..# +....###.#.##..# +#.##..####..... +#.##.....##..## +.#..##....#.##. +.#......##.#.#. +....#.#...###.# +....#.#...###.# +.#......##.#.#. +.#..##....#.##. +#.##......#..## +#.##..####..... +....###.#.##..# + +#..#..#..##.. +#.##......... +#.##......... +...#..#..##.. +##..#.#.###.. +#.#.######### +...#.##....## + +..########..#.### +....####....#.#.. +........#...###.. +..##....##...##.. +####....####.#.## +###..##..###.#.## +#....##....###.## +###......####.#.. +#.##.##.##.##..## + +.####.##. +......##. +..##..... +..##..##. +#....#..# +##..##..# +#....###. +##..##..# +##..##### + +####..####### +.##....##..## +..######....# +..##..##....# +#...##...##.. +#.#....#.##.# +#.######.##.# +###....###### +###.##.###### +.#..##..#..#. +##....#.####. + +###.#.#..#.#.## +##..##....##..# +..#.########.#. +##.#..#..#..#.# +###..##..##..## +##.#.#....#.#.# +..#.#......#.#. +####.######.### +##.##.#..#.#### +..##.#....#.##. +..#.##.##.##.#. +..#.#.#..#.#.#. +###.########.## +###.#......#.## +##...#.##.#...# + +#...... +##..### +##..##. +#..#... +..##... +###.#.. +.##.### +..#.... +#....## +#....## +..#.... + +.#####....##.#... +..####....##.#... +##.#.####..#.###. +##...##...#..#.#. +##...##...#..#.#. +##.#.####..#.###. +..####....##.#... +.#####....##.#... +.#..##......###.. +#.#####...###.##. +....#..#.#..##### +..###....##...... +.#...###...#.##.# +#...#.....#..##.# +#..##.###.#..#.#. +.#...#....###.#.. +##..#..###......# + +###.##.## +##.####.# +##.#..#.# +####..### +....##... +##.#..#.# +...#..#.. +##..###.# +##......# +##......# +..#.##.#. +...#..#.. +##.####.# +....##... +...####.. +....##... +##.####.# + +###..##.# +#####.... +.##.#.##. +#.#.###.. +##...#..# +#.#.##.#. +#####.##. +###.#.... +###.#.#.. +###.#.#.. +###.#.... + +..#...# +..#...# +.....#. +#.#.#.# +.###.#. +###.#.. +##....# +#.#.#.# +###..#. +.###..# +.###..# +###..#. +###.#.# +##....# +###.#.. +.###.#. +#.#.#.# + +.###..... +...###..# +....##.#. +#.#..###. +#.#..###. +....##... +...###..# +.###..... +.###..... +...###..# +....##... + +########...##.# +########.#.#... +##.##.####.#### +########.##...# +#......##..#### +##....##.###..# +##.##.##.##..## +##....###..#### +###..#####..##. +..####...#####. +..####...#####. +..####......#.# +#########.##..# +..........##.#. +..#..#...###..# + +###.#.###.... +####...##..#. +..#..##...##. +..##.#######. +###.#.####..# +##.....####.. +...####..#..# +..###.#.#.##. +##....###...# +..##..##.#### +###.##.####.# +..####.....## +...#.#..#.#.. +...#.#....#.. +..####.....## + +#..#... +.##...# +.##..#. +.##..## +.##.#.# +.##.#.# +.##..## +.##..#. +.##.... +#..#... +....#.# +.##.... +####.## +####.#. +....### + +#.#..#.#.#.....#. +...##...#.#.#.#.# +.######.#.......# +..#.##..#..###.## +###..####.##.#..# +#......######.... +############.#.## +.#.##.#...#.##### +.#.##.#.##..#.#.. +.........#.#.#.## +........#.#.#..## +###..####.##.#..# +.##..##..#.###..# +.##..##..#.###..# +###..####.##.#..# +........#.#.#..## +.........#.#.#.## + +###.####.###### +....#.......##. +.#..####..#.##. +#.##.##.##.#### +.#..#..#..#.... +..#..##..#..##. +#...####...#..# + +....### +#...#.# +.###### +..##### +....#.. +.###.## +.##.#.. +..#.... +....#.. +..##### +.#...## +#...### +#...### +.#...## +..##### + +####.###..###.# +#.##.########.# +....##......##. +...##..#.##..## +....##.#..#.##. +##..#.#....#.#. +......##..##... +#..##........## +..#...#....#... +.##...#.##.#... +.##...#.##.#... +..#...#....#... +#..##........## + +.###.#..... +.##.##.#### +.####..#.## +#.##..#.##. +.#####..... +..##...#### +...#..#.##. +...#..#.... +...#..#.... +...#..#.##. +..##...#### + +.....#..#.. +...###..##. +#####.#.#.# +.##..#.#.## +#..#..#.#.# +#..######.# +....##..##. +....##..##. +#..######.# + +##.###.##.# +.##.#####.. +.#..#.##.## +.#..#.#..## +.##.#####.. +##.###.##.# +.#....#.### +.#....#.### +##.###.##.# +.##.#####.. +.#..#.#..## +.#..#.##.## +.##.#####.. +##.###.##.# +#..#..#.#.# + +###..###.#.## +.##..###.#.## +..###.#.#..#. +.#......####. +#...#...###.. +.#.#####.##.# +.#.#####.##.# +#...#...###.. +.#......####. + +.##.##...##...##. +#####..##..##..## +.....##..##..##.. +.##.#.#.####.#.#. +.##...#.#..#.#... +....#..........#. +#..#..#......#..# +....###.....####. +.##...#.#..#.#... +.....#..####..#.. +#..#...##..##...# +....#...#..#...#. +#..#.##########.# +#..##...####...## +#####.##.##.##.## + +...##...####### +.##..#..##..... +.#....#....#..# +.##..##.....##. +###..####.#.... +##.##.##.###..# +########.###..# +.#....#.###.... +#.#..#.##..#..# +..........##..# +########.##.##. + +..##..... +...###..# +#...##..# +.###.#### +##...#### +##....... +...##.##. +#..#..##. +...#..... +...#..... +#..#..##. +...##.##. +##....... +##...#### +.###.#### +#.#.##..# +...###..# + +.#..##..#.##... +..#.##.#..##### +.##.##..#..#.#. +.########.###.# +..#....#..#.##. +##..##..###.... +##..##..###.... +..#....#..#.##. +.########.###.# + +#####..###.#.## +###....##.#..## +##....####..... +...#.#..##.#.#. +..#.#..#.#..... +...#..###..#..# +..##..###..#..# +..#.#..#.#..... +...#.#..##.#.#. +##....####..... +###....##.#..## +#####..###.#.## +..###...#....#. +##.#...#..##... +###.#...##.#.#. +..###.#....#.#. +..#####...###.# + +..##.####..#..# +..#.###..##.##. +##.#..##.###..# +##.#.#.####.... +###..#.#.##.... +####.#.##.##..# +##.##....###..# +###########.... +..#.##..####..# +...##..#.#.#..# +....####.###### +..#...#.#.#.##. +###...##..##..# +##.#...#.#.#..# +##.#.#.....#### +..##..###.##..# +##.#.#....####. + +#..#..##... +#..#..##... +.#..#.#...# +#...##..### +###.###.### +##...##.### +..##...##.. +##....#.#.. +#.#...###.. +###.#...#.. +......##... + +#....###. +#....###. +.#..#.### +#....##.. +.......#. +#.#..###. +#.##.#.#. +.......#. +.####.##. +##..##.## +.####.#.# + +....#.##### +..#.#...... +###.##..##. +..#.#...... +.....#.#..# +.#...#.##.# +..###...... +#..#####..# +#.##...#### +##.###..##. +.#.##..#..# +..####.#..# +#......#### +##....#.... +#####..#### +#####..#### +##....#.... + +....#........ +#..#.#.#...#. +....#.......# +.##..#.##.... +....##...#### +#..#.##..###. +####.##....#. +####.#.#..##. +......#....## +....###..##.# +.##..#.#....# +.##..#.##...# +....###..##.# +......#....## +####.#.#..##. + +....### +.#.#### +..####. +##.#.## +##.#.## +..####. +.#.#### +....### +###...# +###...# +.....## + +.#...###... +..#.####### +#..#.##.### +....##..... +..#.##..### +...#.##.### +.#.##.#.... +.##.#..##.. +#.####...## +#.##....... +#.##...#... +#.####...## +.##.#..##.. +.#.##.#.... +...#.##.### + +.#..#.### +#....#... +######... +#....##.. +.######## +######... +##..##### +.#..#.#.. +.......## + +##....#.##..##. +#...#####.####. +.#.##.#....#..# +#.....#####.... +.#...#....####. +#.#..#...#..#.# +#.#..#...#..#.# +.#...#....####. +#.....#####.... +.#.##.#....#..# +##..#####.####. +##....#.##..##. +.##...#..#...## +#.######..##.## +........#####.. +........#####.. +#.######..##.## + +.#..#.#...##.#. +..#..#....#.### +#.#.#..#.#.##.. +#....##....#### +#.###.#.##.##.# +##..#...###...# +##..#...###...# +#.###.#.##.##.# +#....#.....#### +#.#.#..#.#.##.. +..#..#....#.### +.#..#.#...##.#. +.#....##.####.. +#.#.#####.#...# +#.#.#####.#...# + +.#.####.####.## +.#.#.#........# +###.#...#..#... +###.#...#..#... +.#.#.#........# +.#.####.####.## +..##..##.##.#.. + +#..####.#.##...## +.....###.#####..# +......##.#..##.## +....#.#.#.##.#..# +....#.#.#.##.#..# +......##.#..##.## +.....###.#####..# +#..##.#.#.##...## +#..####.#.#.####. +.##.####.#.#...#. +.##.###...##..##. +####.#.#...#.#..# +####.#.###.#..### +#..#####....##.#. +#..#####.#..##..# + +#.####.#### +##....##..# +#......#### +.#.##.#.... +..####..##. +..####..##. +.#.##.#.... +.#.##.##..# +.##..##.##. +..####..... +#.####.#..# + +..#.#..#.###....# +.#.######.##...## +#.#.###..##..###. +.#...#####.#..#.. +#.##.#.#..#.#..## +#.##.#.#..#.#..## +.#...###.#.#..#.. +#.#.###..##..###. +.#.######.##...## +..#.#..#.###....# +..#.#..#.###....# + +....#.##... +.#.#..#..## +.#.#..#..## +....#.###.. +.......#.## +..##.#...## +...#.#..... +####..#...# +#..#.#...#. +#..#.#...#. +####..#...# +...#.#..... +..##.#...## + +..######... +..#.##.#..# +#.##..##.## +#.##..##.#. +..#.##.#..# +..######... +##..##..##. +.#..##..#.. +.#..##..#.# +###....#### +..#.##.#... + +#......####.. +..#..#......# +.##..##.##.## +.#.##.#....#. +..#..#..##..# +#..##..####.. +##.##.######. +########..### +#..##..##.#.. +.##..##....## +.##..##....## +.######....## +...##...##... + +.####..## +..####### +.#......# +##..#.#.. +####..#.. +..#....#. +..#....#. +####..#.. +##..#.#.. +.#......# +..####### +.####.### +#..#.##.. +#..#.##.. +.####.### + +#.#..#..#...... +##...####..#.## +####..#.#..#.## +.##..###.#.#..# +..#.##.####.... +.#..##..##.##.. +##.###.##.#.### +#..#.#..#.##.## +##..#####....## +####..#.####..# +#.....#.####.## +......###....## +..#...###....## +.##.##.###..### +.##.##.###..### +..#...###....## +......###....## + +####..#.. +.....##.# +...###... +.....#.## +....##.#. +##.#.#.## +##.#.#.## +....##.#. +.....#.## +...###..# +.....##.# + +######...###... +#.##.#.##....## +......##..###.# +#....##....#.#. +.......##...#.# +#######.#...#.# +#######.#...#.# +.......##...#.# +#....##....###. +......##..###.# +#.##.#.##....## +######...###... +.####.##..####. +#.##.#..###.... +..##.....##.#.# + +#.######.##.#.# +#..####..#.###. +..........#.#.. +..#.##.#....... +..#.##.#....... +..........#.##. +#..####..#.###. +#.######.##.#.# +###....#######. +...#..#.....#.# +.#..##..#.###.# +.##.##.##.#..## +.#.####.#...##. + +##.#..#..##..#..# +##.#..##....##..# +#.#....#.##.#.... +....##.##..##.##. +###.##..#..#..##. +.#####...##...### +...#####.##.##### + +###..####.. +##...#..... +##...#..... +###..####.. +#.#......## +.##....#.## +.###.#....# +#..##....## +.##......## + +........#..## +........#.### +........#..#. +#######.#..#. +.#..#...####. +##..###.###.# +#.##.#....### +########..... +#....##.....# +##..###..###. +.#..#.#.####. +......####..# +..##..##.#... + +....#.#..##.#.#.# +....#.#..##.#.#.# +..#####.##...#.#. +###..#..##....#.# +###.#....#...#### +#..#..#.#...###.. +#....###.#.###### +..#..##.#..#..##. +..#..##.#..#..##. +#....#.#.#.###### +#..#..#.#...###.. +###.#....#...#### +###..#..##....#.# +..#####.##...#.#. +....#.#..##.#.#.# + +...#.##...### +...#.##...### +...##.###..## +.##..#.##...# +#..#..#.#..## +.#....##.#.## +..#.#.###..#. +..#.#.###..#. +.#....##.#.## +#..#..#.#..## +.##....##...# +...##.###..## +...#.##...### + +###.######. +##.#.####.# +..#.#.##.#. +..#.#.##.#. +...#.#..#.# +..##.#..#.# +##...####.. +..###....## +###.#.##.#. +##.#.#..#.# +##......... +####.####.# +###..#..#.. +..#......#. +....#....#. + +#..###.##..##.# +.##...#......#. +##.###.##..##.# +##.#.########## +###.##.######.# +#.#...#......#. +..#..#........# +..#..#........# +###...#......#. + +..#.####. +..##.##.# +###.#..#. +#.#...... +.....##.. +.#.###### +.######## + +..#..#..###...##. +#####.#...#..#... +.......#.#.#.##.# +#...#.........##. +.#.##.#.....#.... +.#.##.#.....#.... +#...#.........##. +.......#.###.##.# +#####.#...#..#... +..#..#..###...##. +#..#..#...#...### +#.#.#.###.#...#.. +#.#.#.###.#...#.. + +....#..#..... +##........### +#....##....#. +##........##. +...#.##.#.... +####....####. +.....##...... +....#..#..... +..##.##.##... +..##.##.##... +...##..##.... +.....##...... +####....####. + +...........#. +.........#.#. +##.##.##..### +.........##.# +#..##..###### +#.#..#.#..#.# +..####..#.#.. +..#..#..#.### +#.#..#.#...#. +.##..##....#. +########.#.## + +.##......##..##.# +.##......##..#..# +.#...##...#.#.... +...#....#...#...# +.#.##..##.#..#.#. +..##.##.##......# +###..##..###..### +.####..####.#.#.# +............##.## + +...##....##.... +.####.##.####.. +.####.##.####.. +##..##..##..### +.#.#.#..#...#.. +##.#.####.#.### +#..#..##..#..## +#.#........#.## +#...##..##...## +#....#..#....## +...#.#..#.#.... +##.###..###.### +####.####.##### + +..#...##...#. +#.##.####.##. +##.#..##..#.# +....######... +....##..##... +...#.#..#.#.. +##.#.####.#.# +..###.##.###. +###.#.##.#.## +..#..####..#. +....#.##.#... + +#......##..##.. +#.####.#.###### +...##....##..## +...##...#.#..#. +##....##.##..## +..#..#.###.##.# +#.####.#.#....# +##....##.##..## +.#....#...#..#. +...##...#.####. +#.#..#.#.#.##.# +..####..#.#..#. +#########.#..#. +...##.......... +.##..##....##.. +.######..###### +###..###....... + +#..#......#.# +#####.#..#.## +....###..###. +#..##.####.## +.##..#....#.. +#..##.####.## +.##..######.. +#..##..##..## +####..#..#..# +.......##.... +.....##..##.. +######.##.### +.##.########. + +######.#. +##..#.#.. +##..###.# +##.##.#.. +.##...##. +#....#### +#....#### +.##...##. +##.##.##. +##..###.# +##..#.#.. +######.#. +######.#. + +.##..#### +.###.##.# +.####.... +..#.###.. +.#..#.... +.######## +.##.##... +.###..### +.##..#### +##.#..... +##.#..... + +#..#.#....#...... +######.######.##. +####..####...##.# +.##...##.####.#.. +.##...##.####.#.. +####..####...##.# +######.######.##. +#..#.#....#...... +###.#######.....# + +#..##.###.##### +#..######.##### +.####.##.#.##.# +..#.##...#.#.## +#..######...#.. +#..######...#.. +..#.##...#.#.## +.####.##.#.##.# +#..######.##### +#..##.###.##### +####.####.#..#. + +.........####.##. +#####.#.#..#.##.# +.##.##...#...#.#. +#..#...#.#.....#. +#..#...#.#.....#. +.##.##...#.#.#.#. +#####.#.#..#.##.# + +.##..###### +#####.####. +#..##.#..#. +.###.###### +.##.##....# +#####...... +.##.#...... +.##........ +####...##.. +####....... +#..##..##.. +.##..###### +####.##..## +......#..#. +.##.#.####. +....####### +#####.#..#. + +#.##.#..##..#.# +.#..#..####..#. +.#..###....###. +#######....#### +.####.##..##.## +.#..#........#. +##..####..####. +#.##.###..###.# +#.##.##.##.##.# +.#..#..####..#. +.####..####..## +.#..#.######.#. +......#.##.#... +##..##.#..#.##. +.####.##..##.## + +###.####..# +##.#......# +...#..#...# +...#..#...# +##.#......# +##..####..# +##.#.#.#..# +..###.###.# +####.#.###. +##..#.#.### +...#....#.. + +.###..##..### +..#.##..###.. +##..#.#####.. +##..#.#####.. +..#.###.###.. +.###..##..### +..###....#.#. +...###..##..# +..#..#..#..#. +.##..##.....# +.##..##.....# + +...#.#..# +###..##.. +...#.##.. +##......# +##......# +...#.##.. +###..##.. +.....#..# +##.##.### +######.#. +.....#### + +.##...####### +....##.#.##.# +.##...##..... +.##..#..####. +######..####. +.##..##..##.. +.##.#..#....# +####..#..##.. +....#...####. +....#....##.. +#..#.##...... + +..##..# +.#.#..# +.#..##. +..##..# +..##..# +.#..##. +.#.#..# +..##..# +##.#### +.#.#..# +#.#.##. +.##.##. +#..#### +#.##... +#...... + +###.##....##.#### +###..######..#### +.....#.##.#...... +.#.###.##.###.#.. +..#.##....##.#... +###..#.##.#..#### +###..#....#...### +.#.#........#.#.. +.#..#.#..#.#..#.. + +.##.#.##..... +#.##.#.###... +#....##...#.. +....##.#..### +#.#.#.#...### +.#..###...#.. +##.....#...## +......#..#... +.##.#..###.## +#.###.#.#..## +#.#####...### +..#.#....##.. +..#.#..#.##.. +#.#####...### +#.###.#.#..## + +...##.#######.... +.....#..#..###### +##..#..###....#.. +##.#.#..##.###.## +..#.#.#..##.###.. +..#..#..##.##.#.. +.##..#..#..#.#.## +##...##..###..... +.......#.#.###### +####.##.#...#..## +###.#.#.##..##.## + +##.#.#..... +.#..###.#.. +####.#..### +##.....#... +.#.#.#...## +##...#.#### +..###...### +####..#.... +####.##.... +..###...### +##...#.#### + +###.#..#.## +..#......#. +...#.##.#.. +##..#..#.## +####.##.### +..###..###. +##.#....#.# +###......## +...#.##.#.. +####.##.### +###..##..## +##.##..##.# +...#....#.. + +#..###...####.. +#.####...####.. +##.###...####.. +...#..#..#..#.. +##...###..##..# +.##.##..#.##.#. +.#.#.#.###..### +#####.#.######. +.###.####....## +####...######## +.#..#.###....## +#........#..#.. +#..#.#.######## + +#...#..######.# +#.#...#....##.. +#.#...#....##.. +#...#..######.# +###.####.###... +.#.#..#..#..#.. +.#.#.###...#..# +######..#..#.#. +.#.####..#....# +#.....#..#.#.## +.##...#.#.....# +##...###..#.##. +...#...##.#..#. +#.#.#..#.##.#.. +#.#.#..#.##.#.. +...#...##.#..#. +##..####..#.##. + +#.#.##..#.. +...###..### +.####.##.## +##..##..##. +##.######## +.###.####.# +####......# +.#...#..#.. +###...##... +##...#..#.. +##.#.#..#.# +##.#.#..#.# +##...#..#.. + +..#.##.###. +..#.##.###. +#.######.## +.#..#..###. +.#.#....... +.#.#....... +.#..#..#.#. +#.######.## +..#.##.###. + +###........###### +..#.#....#.#....# +.#.##....##.#..#. +###.##..##.###### +...##.##.##...... +..##......###..## +.#.########.#..#. +.##..#..#..##..## +##..#....#..####. +.##.#.##.#.##..## +.###..##..###..## +##.#......#.####. +###........###### +.#.########.#..#. +.##...##...##..## + +#.#.#.#..#.###. +##....##.#.#... +#.#.###.#.....# +..##.##..###.## +..############# +..#######....## +..#....##.####. +..#....##.####. +..#######....## +..############# +..##..#..###.## +#.#.###.#.....# +##....##.#.#... +#.#.#.#..#.###. +#.#.#.#..#.###. + +........###.###.# +........###.###.# +.#.##.#..##..#.#. +###..###.#.#.##.# +##..#.##.#####... +..#..#..#..###.## +...##....#.##..## +##....##.####.... +#.#..#.##.#.##..# + +....#.#.###.#.. +.##........#### +.##.##..#.##.## +####.#...#..#.. +.......##.##.## +####..##.#..### +.##..###..##.## +...#.##.#....## +....####.#.#... +#..#######..#.. +#..###....#.### +.....#..#.#.### +.##...#.###..## +.......#..##.## +#..#..##...#### +.##.##.###..... +#..#.##.#.#.... diff --git a/2023/day13/src/lib.rs b/2023/day13/src/lib.rs new file mode 100644 index 0000000..03af2b8 --- /dev/null +++ b/2023/day13/src/lib.rs @@ -0,0 +1,146 @@ +pub fn part1(input: &str) -> u32 { + let mut res: u32 = 0; + + let m: Vec<Vec<String>> = input + .trim_end() + .split("\n\n") + .map(|x| { + x.split('\n') + .map(|y| y.chars().collect::<String>()) + .collect() + }) + .collect(); + + for s in m { + let n = s.len(); + + // Search by column + // 012345678 + // >< + // #.##..##. + // ..#.##.#. + // ##......# + // ##......# + // ..#.##.#. + // ..##..##. + // #.#.##.#. + // >< + // 012345678 + // + let m = s[0].len(); + let mut mc = 0; + for i in 0..m { + let mut j = m - 1; + while j > i { + let mut s1 = String::new(); + let mut s2 = String::new(); + for k in 0..n { + s1.push(s[k].chars().nth(i).unwrap()); + s2.push(s[k].chars().nth(j).unwrap()); + } + if s1 == s2 { + mc = std::cmp::max(mc, i); + } + j -= 1; + } + } + + let mut check = true; + + let mut i = mc; + let mut j = mc + 1; + + while i > 0 && j < n { + let mut s1 = String::new(); + let mut s2 = String::new(); + for k in 0..n { + s1.push(s[k].chars().nth(i).unwrap()); + if j >= s[k].len() { + break; + } + s2.push(s[k].chars().nth(j).unwrap()); + } + if s1 != s2 { + check = false; + break; + } + i -= 1; + j += 1; + } + + if check { + res += (mc + 1) as u32; + continue; + } + + // Search by row + let mut mc = 0; + for i in 0..(n / 2) + 1 { + for j in ((n / 2)..n).rev() { + if s[i] == s[j] { + mc = std::cmp::max(mc, i); + } + } + } + + let mut check = true; + + let mut i = mc; + let mut j = mc + 1; + + while i > 0 && j < n { + if s[i] != s[j] { + check = false; + break; + } + i -= 1; + j += 1; + } + + if check { + res += (mc + 1) as u32 * 100; + continue; + } + } + + res +} + +// pub fn part2(input: &str) -> u32 { +// let mut res: u32 = 0; +// +// res +// } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn example_part1() { + let input = include_str!("../example.txt"); + let result = part1(input); + assert_eq!(result, 405); + } + + #[test] + fn input_part1() { + let input = include_str!("../input.txt"); + let result = part1(input); + assert_eq!(result, 2331); + } + // + // #[test] + // fn example_part2() { + // let input = include_str!("../example.txt"); + // let result = part2(input); + // assert_eq!(result, 2286); + // } + // + // #[test] + // fn input_part2() { + // let input = include_str!("../input.txt"); + // let result = part2(input); + // assert_eq!(result, 71585); + // } +} diff --git a/2023/day15/Cargo.toml b/2023/day15/Cargo.toml new file mode 100644 index 0000000..f52c8dc --- /dev/null +++ b/2023/day15/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day15" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2023/day15/example.txt b/2023/day15/example.txt new file mode 100644 index 0000000..4f58f74 --- /dev/null +++ b/2023/day15/example.txt @@ -0,0 +1 @@ +rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7 diff --git a/2023/day15/input.txt b/2023/day15/input.txt new file mode 100644 index 0000000..b12bf11 --- /dev/null +++ b/2023/day15/input.txt @@ -0,0 +1 @@ +fnln-,bkxf-,spfc=9,ds-,trzx-,dtck-,xs-,bg=4,fgmpc=5,xmxf=1,cl=9,md-,ct=2,ftz=5,xhd-,vkqx-,hxd=6,mlcn=6,ctdbt=6,txpsv-,nkx=3,jfz-,fzm=3,rvcd=4,nfgp=3,jjd=7,nzq=6,zv=5,lh-,nfgp-,gcbtgm=7,zj=6,sxlh=3,vsj=8,cjb-,tslfp=5,vc-,kpn=7,qpm=5,jgmnxd-,xp-,kmm-,xb=4,tv-,bmnlf=7,cb-,vbmk=5,dvz-,ssd=6,sb-,mldgtn-,mtx-,kz-,nzq-,dnkf-,sn-,js-,bpq-,vc-,fzm=9,xqv-,gqsr=2,jzxp=5,bc-,lxg=5,sv-,gflrmd=9,ncjb-,fm=9,lln=1,ql=9,tj=2,pbmldc-,fkzq=7,vkh=3,tn=4,fdl-,frgf=1,vf-,fpg=4,xzt-,jf-,pjfk=5,rvcd-,rv=6,zrs-,qnd=1,vqzhc-,xrb=8,lvx-,dfz-,xstdx=6,sf=4,hsb=3,sqjgc-,xtl=7,zthrd=8,mldgtn-,rc-,kpz-,tpnmp=6,bzj=7,gmrrx-,bszd-,mjz-,bzj=8,ztk=9,dtv-,qgm=4,ssd=3,xc=8,hvglb-,xf-,qhvz-,vqc-,ktj=1,ppq-,zxt-,rnsbt-,qpx-,nj-,vhl-,rknz-,zngsp-,vhl-,fjh-,vrzjf=7,gkn=6,tfd=4,bgg=1,fgmpc=9,lpd-,pbmldc=4,jm=2,vlv=4,shn-,vps=8,ljsvc-,rfdrk=3,vkqx=7,gftx=9,nzq-,cq=1,ckb=6,zsx-,qpf-,cggz-,bzj=9,lfg=6,tfd-,xdfz=8,ghbr-,dsdm=8,nj=4,jf-,fnln=7,fzm=7,fkzq=7,xcq=8,fkzq-,dm-,bfz=2,lqf=4,sfp-,kpqvtc=2,fkzq-,vth-,zn-,xhs-,vsj-,psfnx=4,xbx=1,xgk=9,snpgsm-,psg=3,shn=6,qxkrd-,pxvxlh-,xbx-,gt-,ksn-,dzn=7,gp=7,mp=8,jtz=3,ph=2,jxj=8,pg=5,txkh=6,drls=6,zthrd=9,gqsr-,dtv-,mktlhp=9,bszd=5,snpgsm=5,qz=6,sh=6,lqt-,mktlhp-,mgt-,mvmqfm=5,bc-,lpd=6,zn=3,nhsvv=3,vdf-,znjg-,phsl=7,tnb=4,qlf=9,txpsv-,pxvxlh=6,lqfv=7,lffv=5,djmlb=7,pxn-,hdxvhr=8,vbz=1,vqc=1,xrb-,bj=1,bzpv=5,tdl-,xc=2,cnr-,ss=6,mf=2,sv=2,mp-,zpc-,rqg-,xtsd-,hlg=6,xdfz=9,nl-,kfp-,cr-,qxkrd-,vpxv=9,mtx=1,drls=9,jzxp-,xqfrg-,js=3,ql=8,xp-,kpz=8,zj=9,jxj-,gf-,gcbtgm-,cmpc=4,tr=4,px=6,pvv=9,tpnmp-,jhhqj=5,mmn=3,qpf=5,vnk=9,cnn-,xgr-,mmsz=4,lvs-,cv=3,cq-,bfz=8,ct=7,kr=6,gk-,zdtz=1,vqzhc=3,xzt-,vqt=4,dphx-,kmr-,fkzq-,lk=8,dvz=6,ghbr=6,hm=6,zm-,sn-,jgmnxd-,vkz-,ps-,vpxv-,gpg=4,bmnlf=9,pjfk=3,ndmt=7,zk-,zthrd=5,fgmpc=8,rgh=7,bx-,ctp=2,nl=7,rtj=6,grlkl=9,zf=8,lg=4,zngsp-,rsn=5,drls=9,lxmkfx=7,sbt-,bx-,lln-,dm=6,fnv-,qpf-,tq-,qv=9,cfnbp-,pxvxlh-,tr-,nh-,clg-,xjpbxm-,zs-,trzx=8,bgh-,cmbv=1,vq=6,lcr=9,scbjp-,sjb=2,gmrrx=6,mg=5,znjg=4,zn=9,grlkl=7,xmxf-,smtd-,vkh-,spsx=9,qpf-,bgg-,smtd-,ntg=6,qpf-,vtp-,nlcrm=8,cvc-,frgf=8,blfx-,vbz-,tcs-,bqpp-,fjh=5,rtj=5,vr=6,kjrc=1,nzq-,qpf-,vqc-,kmr-,hj=8,fnh-,scbpb-,gxg=9,kf=6,xhs-,zdl=9,sscn=9,dzt-,rl=9,gr=6,tv-,jmthd=9,gn-,bzj=4,pv=9,pcnzf-,jxj-,sxlh-,lxg=3,rpn-,vr=9,rl-,tslfp=5,pgd=2,xmxf-,mjz=9,drls-,hrbj=7,rr-,lxg-,grlkl=3,jsv=1,sr=6,dv-,scbjp=1,pkg-,mgt=9,hsb=3,ccs-,xdfz-,cqq-,nbtq=2,ljsvc-,rpn=8,msbfzl=5,kz=7,cnr=4,hz-,ctf-,tgqp=9,tfd-,sqd=7,rb-,qf-,srp-,fkzq-,pfjml=6,rnsbt-,dmp-,zngsp-,cfnbp-,kpqvtc-,gftx-,lvs-,zpc-,kpz=2,pxvxlh-,spm-,rt-,ftz-,lvs=2,zsx=2,sjb=4,lxmkfx=7,bqpp-,hb=7,xzl-,ckb=7,hsb-,cvc-,ksn=7,mktlhp=5,jhl=6,snpgsm-,mm-,xstdx=2,rm-,rqx-,ld=4,zv=6,fx-,sbx=2,blfx=8,fmkjj-,km-,cmbv=8,vz=9,lg=4,fpg=4,kpfr-,dmp=4,xxj-,jhl=2,km-,vx-,sh=8,xqv=3,kfp=3,zdm=3,tdl-,ddxn-,gzrz=9,xqv=8,kqh=2,rlrlql-,lpd=1,vr=1,ggm-,dkz=3,jx=2,trzx-,sjb-,rh=8,dbsf=4,jhhqj=8,jzxp-,bkxf-,thnmq=7,mktlhp-,jtz=7,sh-,plt-,rfdrk-,hj=4,dk-,zjvd=9,jsv-,vkn-,jc-,zk-,mmsz-,lcr-,dkz-,px-,pcnzf-,jtz-,pzd-,kqh-,ts-,znb-,dzn-,qgm-,drls=9,bmnlf=3,thnmq-,bpq-,zxt=9,lg=6,rknz=8,bzj-,vsh-,lq-,rm-,ql-,cs=1,dzt-,hfrdk=4,kmm=9,lhks=9,jsv=5,zxt=9,kc=4,rm=8,hvglb-,bzpv-,drs=1,tgqp-,trg=4,dp-,zmlr-,pvv-,lfg=2,rqg-,nh=5,mkj=5,cct=1,lxmkfx-,txpx=2,vps=5,dzn=3,dph-,kv=1,vth=6,gftx-,lztd=3,hb=8,qpx=2,fjg-,plp-,vnhfc=3,zv-,xt=1,bgkjq-,pbk=9,hj-,sv-,kpz=5,fnh-,zpc=3,zj=8,pxvxlh-,qgm=6,gct=5,tdl=5,xtl=2,lg=7,trzx=9,hvglb=3,ss=6,vpxv-,gh-,js=1,jf=1,rqx-,pg-,nqcj-,zzx-,mf-,zlcmgc=3,lxg=8,rpgj-,vhl=6,phsl=8,dtck-,rxv=2,qpf=7,nh-,ccs-,mf=3,xrm=4,pljg=1,rnsbt=5,nnn=2,snpgsm=5,qxkrd=5,xgk-,trg-,phsl-,bzj=5,ckb=4,cqbvs=5,xgk=8,ck=7,dbffb-,tj=2,dm-,fjg-,zdm=8,jc=9,rqg=3,qhvz-,cmpc-,dzn=4,xrb=2,kfp=2,vbz-,xhs-,dnkf=3,chpn-,sl-,kftx=5,rsn=5,ps=9,jm-,pbk-,vq-,qpf=4,rfdrk-,rsn=9,nqcj=7,vsh=7,npm=7,qxkrd-,hpl=1,rnsbt-,pxn-,zsx-,lpd=5,fgmpc-,vkqx-,vth-,pm-,mgt=5,cct=3,bb-,hzlzn=2,gkn-,mjz-,kx=8,qcnnzx-,kmr=7,lfl-,jhhqj-,lqfv-,gkn=5,pfjml-,lhks=4,bzj-,tnp-,nj=1,xhs-,rtj=9,rlrlql-,qcm=3,mph-,fx-,jm-,xtl-,xdfz-,msbfzl-,ckb=7,hj-,cqr=5,scbpb=2,tslfp=1,kmm-,cv=4,zpc-,qfb-,rlrlql-,trzx-,sf-,ccs-,fsz=2,dv=8,thncf=4,bmnlf-,qgm=8,plvd-,dm-,pjfk=4,gr=6,qv=7,khx=3,vs=7,dtck=9,xbx-,xstdx=8,km=6,hgp-,kf-,xf=1,vnhfc=6,xgr=1,pbk-,sl=2,jmthd=8,sbt=6,mkj=8,vnk=3,bgkjq=8,bg=2,xbx=6,mmsz-,rnxt=1,shn-,ss=3,kpqvtc-,dfz-,qxj=9,mktlhp=4,jzxp=1,hm-,vx-,bzj=1,vnhfc-,vrc=7,bgkjq=8,gp-,vq-,lh-,tnfx=4,ntg-,dd=5,znb-,vtp=4,vgln-,hz=1,lk=1,mktlhp-,vz=3,vpk-,bbsk=4,qlf=1,hgp=5,xjpbxm-,qcm=8,tz=4,lqf=2,bz=3,jfjbj=9,lfl=6,cqq=8,xzt=4,xb-,rlrlql=9,cqbvs=8,dzt-,blfx=9,rqx=5,xfn=6,px=3,chpn=7,js-,lg-,ctf=1,qcnnzx-,hsb-,xnmq=1,hpl=1,pg-,gr-,fkzq=2,rfdrk=7,tnp-,gbsp-,nq=4,vttk=1,lrpx=5,xrm=3,crb-,nglvx=5,md=2,px=6,pljg-,sjb=3,kpjqgm=9,xrm=6,slzd=6,xc-,sxlh=6,mtx-,xc-,nbtq-,plvd=2,hb-,znfd=7,ghbr=1,gkn=3,gct-,cqq-,znb=5,jsv-,txpsv=6,dk-,dbh=7,lmlx=6,lcr-,bfz=4,xhs-,cjb-,tkpb-,dkms=4,sh-,fkzq=3,kqh=8,dv=9,lrpx-,vnhfc-,bqpp-,pcnzf-,km=1,ssmflk-,pnp-,rsn-,cqbvs=5,fr-,kfp-,npm-,vbz-,jm=9,pgd-,trzx=6,hsb=6,qrn=3,lln=8,zl=6,qpf=8,djmlb=6,zj-,qhvz=1,kz-,bzpv-,bq=8,frgf=7,blfx-,tnp=9,lqf=3,zrs=5,lc=2,scb=6,dzfqlb=3,kmqjt=1,trg=1,fzm-,bgg-,gzrz-,sv-,qz-,zlcmgc=4,qcm=1,xhd=7,zmlr-,fnv-,xdfz=9,fx-,xfn=7,zdm-,fr=7,tfd=1,njvd=4,vnk=2,xbx=8,xp=3,zbgdxg-,lxmkfx-,pbmldc-,znfd-,znb-,xh=5,ccf-,lxmkfx-,tgqp=6,ng=6,kz=9,hlg=2,mmsz=9,vdf=1,vkh=9,cvc-,sfp=7,ckb=6,gxg=9,cggz=2,clg=8,zn=6,ctf=6,zdtz=1,ddxn=6,nhsvv-,plvd-,sbx-,ncjb-,lc-,pvv-,vpxv=3,mhh-,qgm=6,vbmk=8,rb-,gxx=7,pt-,qpx-,gcbtgm-,xf=4,xfn=1,tv-,mmn-,zrs=6,zm=7,pxvxlh=5,xc-,dbsf-,scbpb=3,smtd-,fsz-,znjg=3,rfdrk-,ccs=9,mgt=5,mjjk-,vsh-,sv=8,cgp-,gf=1,pg=5,mph-,ctp=3,vblpd=7,gbsp-,gf=3,nbtq-,vjsg-,jsv-,lqfv-,np=4,xh-,tq-,xs-,vk-,hb-,mmn-,vbz-,kpjqgm=5,dkz-,rzjkqp-,tvm=3,dz-,kftx-,khn-,nj=2,cnn=3,cl-,sf-,vc-,zmlr=3,lxmkfx=3,blfx=9,vbmk=6,tpnmp-,sqjgc=5,rz=2,bszd=6,kkc=9,dnkf-,lmlx=7,ddxn-,bhfh-,gflrmd-,xb-,mmn=2,jfjbj=1,zm-,sqd=4,kl-,dfz=4,ktj=5,lxmkfx=2,qxkrd-,dp=6,hl-,lqfv-,kx-,vbz=5,qf-,sv-,kpqvtc-,vhx-,ps=1,fr-,vbmk-,bnhz-,tj-,rlrlql=2,np=4,vs-,vbmk-,pmz=3,pbk-,zxt-,ck-,xf=2,jtsdd=7,ng=1,gn-,qfb=5,mf=4,xb-,rc=7,jjd-,xv=6,gzrz-,cqq=5,dzt-,scb-,plvd-,vqbp-,mvmqfm=3,pr=1,nj-,pvv=8,xtsd-,gbsp-,hnf-,fdfc=3,zzd-,kftx-,pbk=3,lrpx-,hbmt=4,mktlhp=2,ld=4,sf=4,rxv=1,kkcd=9,dph=7,ssmflk-,vnhfc=1,hrbj-,ljsvc=6,rt-,xf=5,tq-,npm=1,kkcd-,spm=7,ljsvc=4,lpd-,nh-,cnr-,xmxf-,cxq=6,mjz-,hpl-,lh-,grlkl=7,pv=9,pqf=1,zsx=7,vbz-,vgln-,dvz-,zl=6,js-,rqx=8,hdxvhr-,pkg-,tzjln=1,nhsvv=7,ggm=5,zz-,kmm-,zngsp=5,gqsr-,cnn=8,vrc=3,zxt-,txpx-,jmthd=9,gbsp-,gn-,zrq-,ss=5,xjpbxm-,ssmflk-,sr-,kl-,gp=9,mhh=7,bpqv-,mvmqfm=6,vr-,kmqjt=4,xnmq-,hvglb=5,qpf-,xb=5,jgmnxd-,sfp-,sscn=8,pcnzf=4,rr=7,gqsr=4,xs-,ql-,pxn=6,jf-,ckb=6,ps=7,bzpv-,qcm=5,gf-,vk=8,hlg-,kjrc=4,dnkf-,kjrc-,qgm=7,pt-,mmn-,dphx-,dsg=8,brp=5,lq=6,kpqvtc=8,xhs=1,tz=1,rm-,qht-,jhl=3,mr=1,tj=4,pnp-,zngsp-,lcr=5,fr=9,vgln-,bz=1,nfgp-,xzt=1,xzbz-,cqzt-,vblpd=9,mg=6,dd-,xtl-,mf=7,qln-,qxj-,mgpp=7,cb=7,zf-,pkbv=2,fgmpc=4,lc-,dmp-,zxt=1,db-,hrbj-,vnk-,smtd=1,cjb-,dtt-,zlcmgc=1,kkcd=9,xh=3,sqjgc-,td=9,npm-,cqbvs-,hj-,sf=2,zf-,mph=7,zcjvl=4,dkms-,rgh=6,zzx=4,hm=4,tz-,vr-,vf-,cqq-,bgh=1,sn-,vbz-,sxlh=3,xtl-,lqt-,kd-,mg-,vf-,lg=5,fnh-,gbsp-,ksn-,mlcn-,vqzhc=8,gzrz=6,lcr=3,qxj=1,hpl-,dphx=5,js-,fm=5,vgslz-,vf=5,ns=2,qcm-,ds-,pr-,vqfz-,hl-,mnphn-,ctp-,qht-,dv-,kd=1,lrpx=9,bpq=1,qgm=9,ckb=6,zf-,vps=5,gbkt=3,zk=4,lztd-,tpnmp=9,rr=9,rpgj=5,dbffb-,mvmqfm-,fzm=8,bpq=9,lxmkfx-,sf-,br-,jxj=1,snpgsm=2,bj-,fsz-,vjsg-,gxx=4,hbmt=1,gflrmd-,rtj-,zl-,snpgsm=7,ppq-,vrzjf-,dv-,njvd-,sxlh=1,xgr-,tv=8,kmqjt=2,cfnbp-,xxj=1,zngsp=5,cqr=1,jc=9,gr-,qxkrd-,xzbz=9,xnmq=1,zcjvl=1,vjsg=4,fx=2,srp=2,kpfr-,bbsk-,xqfrg-,tvm=1,pqf-,fdl-,ss=5,bnlpjk=6,dphx=6,vbz=4,grlkl=7,gxx=1,lrpx=3,drls-,dph=8,vs=4,sbt=3,jpc=5,pbmldc=8,ddxn-,br=3,qln-,rvcd-,dmp=5,dhh=5,fjh-,sn=6,txpx=2,ctdbt=1,rzjkqp=7,bzpv-,gt=6,sb=8,qht=9,kpz=2,hvglb=8,mr=3,fq=5,jm=5,rzjkqp-,ndmt=6,bzj-,lg-,ks=1,npm-,vqbp=4,lcr-,km=9,tv=6,thncf=6,bxx-,vq-,rpn=6,dz=2,tcs-,mr-,kd-,spfc=8,npm=7,hrbj=1,cggz-,jjd=7,drs=6,vr-,rfdrk=4,kc-,pkbv-,zmlr=1,lqt-,hsb=1,xb=5,pljg=5,bq-,gxx=5,vrzjf=9,xhs-,xk-,vdf-,lg=6,xrb-,vc-,pbmldc=5,js=5,ld=4,sbt=4,gftx-,kpz-,khx=1,mr=9,lztd=7,xqv=8,cb-,sbx=6,qpf-,vgln-,xcq=9,jf=4,zs=2,cv-,vqc-,vgln=3,bmnlf-,nsxz-,vttk-,jx=1,tnfx=9,zv-,fdfc-,rc-,lhks=4,zlcmgc-,grfxxs-,hrbj=4,vqt=8,ts=5,hd-,tq=8,bg-,mf-,pcnzf-,sh-,trzx-,xb=4,rc=8,bzj-,pkg=8,hlg=5,qcnnzx-,ck-,mjz-,vth-,mgt-,cct=1,bkxf=8,rpn=1,mg-,fjg=3,vlv-,zngsp=8,ksn-,hnf-,dbh=7,pxn=5,hsb=8,mq-,jsv=7,ccf=1,ts=8,kz-,xgr=5,xbx=5,sqd-,fpg=8,lvs=5,smtd-,zs=3,dsdm-,nrc-,jtz=8,jxj=3,sv=3,mlcn=9,psfnx-,kpqvtc=9,rsn=4,zdl-,lztd=4,vnk=2,dmp-,sscn-,zj-,dd-,zdl-,smtd-,tj=3,ggm=6,ff=2,zzd-,pfjml=7,chpn-,mjjk=4,spm=7,sfp=6,xbx-,dbffb-,sh=9,hnf-,pmz-,rzjkqp-,hb=8,bj-,hgp-,txkh-,znjg=2,vqfz-,vgln=2,zzd-,crb-,vqt=3,ssmflk-,bqpp=4,xt-,dbffb-,bhfh-,hsb-,rvcd-,sbt-,txpx-,jtz-,cb-,dp-,mvmqfm=3,ddxn-,msbfzl-,xgk-,jpc=5,phsl-,dbffb-,zcjvl=4,tvm-,pv=2,sfp-,nnn-,jmthd=2,qcnnzx=3,xnmq-,tgqp-,fzm=3,jpc=2,cnn-,jhhqj-,mvmqfm-,rtj-,km-,lk=6,slzd-,chpn-,xb-,tpnmp=9,vkz-,lqt-,vf-,gbsp-,cmpc-,xc-,pkg=5,tz-,dzt-,mvmqfm-,dvz-,lhks-,npd=6,lfg=7,bgh-,vqbp=5,grlkl-,lvx=4,mgpp=1,znb=6,zf=4,lfl-,cr=2,dbffb=3,jzxp=2,mhh=2,gftx=7,lfg-,gkn-,xb=5,djmlb-,qln=8,zmlr-,dkz=6,grlkl-,rt-,zcjvl-,vblpd-,lztd-,lfg=2,gxg=6,bj=8,zs=9,ssd-,lcr-,tqx-,ncjb-,kmr-,trg=4,kmm-,cjk-,tq=7,qqp-,scbpb=1,rc-,xzt=1,ftz-,sjb=2,rknz=4,gbsp=4,qrn=3,dhh-,mph=1,pjfk-,grfxxs-,xfn=3,bq=6,kd=3,vjzt-,vgln-,rv-,lcr-,blfx=4,gzrz-,kmm-,hj=8,pvv-,khn-,jfz-,gr-,gr-,dhh=9,ps=3,vblpd=9,sqd=3,hz=7,mp-,lxg=1,bnlpjk=3,jjd-,txpx=7,fx=9,nkx-,bg-,rvcd=4,sr=6,qz=3,vdf=9,ld-,nsxz=1,zdtz-,dzn-,hb-,vjzt-,nfgp-,cmbv=6,pljg-,sqd=1,ssd-,fzm-,qv=8,tn-,cct=8,cnn=2,vkh-,zl=8,xcq-,ppq-,scb=5,pbk=6,jmrz-,xgr-,kpjqgm-,nglvx=5,qht-,fnln-,cl-,kkc=9,kpfr-,xtl=9,dsg-,xrb-,zdm-,mmn=5,tz-,gh-,vkn-,vkqx-,gkn-,qxkrd=7,rt=7,rh=3,bc-,nzq-,mtx=8,jc-,kfp-,dkms-,thnmq-,jhhqj=6,vhx=2,lqfv-,kc-,vqzhc-,bzj-,fmkjj=5,ql-,fdfc-,kftx-,ktj-,bgh=2,cqzt-,rtj=2,vkh=2,dfz=6,xstdx=9,npd-,hf=8,jhhqj=1,snpgsm-,xrb-,hm=5,bx=1,ql=2,djmlb=7,xcq=6,xbx=4,kl=9,dk-,sh=7,ctf-,sqjgc-,thnmq=7,lhks=9,xdfz-,tk-,pt-,vgslz=7,dtv=5,sbt=9,kv=1,drs=3,db=8,lqf=6,xhd-,qln-,ckb=2,kpn-,qvlzn-,fb-,xcq=3,vqc=2,ct=4,dtck=5,vgslz=9,shn-,rv-,cr=3,tpnmp=1,cct-,zj=8,bnhz=4,psfnx-,nnn=8,kl=8,ps=5,ng=6,cnr-,snpgsm-,dnkf=9,znb-,bgkjq=1,pjfk-,pl=9,dtt-,sqd-,hgp=7,gs-,qrn=8,dvz=4,kftx=7,ggqq-,cl-,cr=9,jsv-,vjzt-,pxvxlh-,kqh=1,tqx-,lvx=9,mf-,rpn=2,bpq=4,km=4,vnk=6,cqzt=9,bxx=8,tn-,pgd=8,dp=7,thncf=8,zdtz-,vgslz=5,cnr=7,nkx-,hdxvhr=6,tj=6,xnmq-,qf=4,lq-,vnk=7,rpn=4,zd=8,rxv-,lln-,sbt=6,mhh-,rz=5,dtt=9,gxx=7,pnp=2,lqt-,xdfz=7,lhks-,gflrmd=8,kpqvtc=3,tj-,pvv-,xcq-,xfn-,kpjqgm-,kc=6,zngsp=1,vpxv-,xfn=1,qqp-,tj=2,xrb-,zsx=4,lfl-,vqc-,nq=9,lrpx=7,rpn-,phsl=7,chpn-,vq=6,dd-,ff=1,lztd-,lq-,vx-,lg=3,jmthd=7,vnhfc-,jgmnxd=6,fpg=3,xs-,ggqq-,msbfzl=7,znjg-,xt=8,xzt=9,ff=3,mmn-,dmp=7,hrbj-,vth-,dkz-,nsxz-,bnhz-,bq=2,hm-,dm=7,trzx-,xmxf=1,npm=7,qqp-,fnv-,bzpv-,hnf-,ztk=4,hz-,bx-,srp=4,sqd-,zk=5,gbsp-,fsz-,vlv=6,hpl=5,jgmnxd-,rtj=9,lh-,qhvz-,vkn-,blfx=6,sc-,rqx-,tslfp=6,zdm-,fsz-,mm=5,lc=5,ghm=6,ktj-,kl=6,dph=6,ztk-,cb=2,kz-,psfnx-,mq=4,vqc-,dph=9,zj-,js-,znb-,vqbp=9,dx=2,dtck-,gt-,br=6,zrq-,bqpp=5,ckb=6,ng=9,zdm-,jc-,lvs-,ql=9,zf-,sc=2,dph=9,bz-,vbz-,khn=6,kmr-,drs=7,kx-,vlv-,pljg=6,vpxv=6,fsz=5,vqbp-,tcs=5,qz=9,xp=2,xp=7,kx-,ssd-,bz-,vs=5,mgpp=8,rnsbt=1,hdxvhr=4,rz=9,nq-,ktj-,pv-,cmpc=5,psfnx-,pqf=9,tv=4,jpc-,jfjbj-,vps=6,bszd-,jx-,xhs=2,cfnbp-,cb=6,nfgp=8,mg-,fjh-,mtx-,vrc-,cr-,njvd-,lffv-,qqp=4,cr-,js-,jx-,pgd=9,qg-,vsj-,bnhz-,sjb=1,nglvx-,fkzq=9,qhvz-,nlcrm-,kmm=2,jzxp=2,zrs-,mtx=9,hnf-,lk=5,nq=2,rpgj=1,tkpb=7,zzx=7,pnp-,rgh=1,qhvz-,zpc=1,pmz-,nhsvv=5,zqr=6,cggz-,lhks=3,bpq-,tfd=7,jm=4,kpjqgm=9,qxj=8,pv=8,pmz=2,jf=2,gxx-,jf-,mktlhp=1,lrpx=2,lqf-,scbjp=3,fdl=7,khn-,ddxn=7,dzn=6,chpn=5,vpxv-,kl=8,sqd-,vnk=9,vbz-,cqzt=9,lc=4,nhsvv=7,ph-,bz-,xzt=7,cqr=8,spfc=3,vsh=9,bbsk-,khn=1,bl-,lffv=3,pl=8,zdl=7,qg=2,vkz-,qht=9,xhd-,blfx=5,vbmk=5,npd-,zv-,bpqv=2,tvm=6,xqv-,zv=8,dbffb-,trg-,cqbvs=2,vqbp=4,kpfr-,ql-,cggz-,kpfr-,sbt-,plp=2,fsz=3,ct=1,zcjvl=6,rpgj-,nfgp-,zqr=4,zn-,mq-,ps=8,rtj=4,kpqvtc-,ndmt=3,plvd-,xv-,rt-,fb-,psg=8,sxlh-,nhsvv=4,pkbv-,vrzjf=7,dzn=7,mmn-,jfjbj-,vnkmzj=6,dp-,rh-,cv-,dzn-,lg-,rpgj=1,dph-,ctdbt=3,cfnbp-,gxx=8,hj=3,xnmq=4,lc=5,bb=9,zdl-,zzd=9,hzlzn=9,dz=9,rz=9,bzj-,xb=4,lrpx-,vlv-,dph=1,cqbvs-,ghm-,pcnzf=2,vr-,cct-,mph=2,nsxz-,ssd=2,hfrdk-,psfnx=9,rc-,pbk-,znb-,zmlr=1,dk-,dkz=3,rqg=3,mv-,zv=9,sscn-,bszd=1,xhs-,dzt-,mgpp=3,dnkf=6,tnfx=9,drs-,spfc=3,dbsf-,sr-,lfg-,bg=2,gbkt=7,jxj-,tv-,fjh=9,fdfc=5,gs-,vbz=1,dbsf=9,zdtz=6,fgmpc=2,njvd-,hfrdk-,sh=8,scbjp-,zn-,msbfzl-,px-,spfc=6,vdf=2,vc-,vlv=2,cqq-,vhx=1,hl=3,vkqx-,fx=7,gct-,vrc-,hpl=8,zm=1,ktj-,xmxf-,rqg=7,zm=8,cqq-,zlcmgc-,kkcd-,dtt-,jmrz-,gf-,xzl-,pcnzf-,tslfp-,pxn=2,ccs=5,lmlx-,cct-,vgln=4,xt=3,gxg-,vq-,dz-,vqc-,bgh=6,zbgdxg-,ctdbt-,mg=6,fb=1,xbx=1,xv=2,lvs-,kd=9,slzd=2,xb=3,mvmqfm-,kv-,jfz-,jc=8,mgpp-,shn-,kpn-,scb=9,txpx=5,zf-,vhx-,rnxt-,pxn-,mg-,gftx=6,fsz-,xnmq-,bz=4,nfgp-,gkn=7,bnhz-,qpm=1,vhl=5,pm=1,spm-,xfn=8,xf=9,vqbp-,trg=1,pkg-,lrpx=4,mf=7,rpn=7,vqbp-,vdf=8,zz=5,tslfp-,dz=1,fjg-,cb-,zqr=3,clg-,js=2,xjpbxm-,fnln=4,pgd=7,hzlzn=6,qrn=4,khn-,psfnx=7,grfxxs=8,lvx=4,spm-,zl=6,grfxxs-,trg=1,lmlx=2,rsn-,rb-,cnn-,zdl=1,mmn=8,rr-,scbjp-,zk=2,xrm-,lc-,pkbv-,ss-,qhvz-,fq-,bnlpjk-,kkc=8,fpg=7,tgqp-,jzxp=8,rm=2,plvd-,lfg=5,jmrz=9,vk=7,spsx=2,spfc=5,plp-,cfnbp=6,jzxp-,fjh=3,xjpbxm=4,br-,nrc-,sn=3,rc-,lfl-,plt-,np=5,bgg-,xf=4,vlv-,vrc=5,cct=5,vps-,xzl=9,nnn-,pvv=9,dmp-,sf-,hm-,vtp=7,cqr=7,kv-,rnsbt-,qcm-,dvz=1,dbffb-,dbh=4,bzj=9,ctdbt-,tnp-,ksn-,dmp-,qz-,lxg=6,dtck=9,lvx-,bfz=6,xgk=7,qpm-,ggqq=2,grfxxs=3,msbfzl=1,xqfrg-,nlcrm=5,hzlzn-,rfdrk-,xhs=8,xnmq-,pbk=9,jsv=9,zk=8,dtck-,jtz=2,nhsvv=6,ddxn-,ks-,tcs=1,jsv-,xb=1,ff=1,scbjp-,mjz=7,pbmldc-,tcs-,xhs-,plt=8,zs-,xbx=6,bxx-,qcnnzx-,dkz-,dvz=2,rh=4,mhh=7,djmlb=7,bnlpjk=8,jgmnxd=9,pzd-,lffv=2,xqfrg-,cb-,tzjln-,bfz=1,fnh=8,xf-,cqbvs-,lqfv-,ld-,jtz-,nj=8,cjk-,dsdm=9,thnmq=2,ck=8,bpqv=4,rgh-,mf-,sqjgc=8,rzjkqp-,dvmm=8,zthrd=2,mtx-,cqzt=6,gct-,spfc=7,trzx-,hlg-,rqx-,lffv=5,vf-,bqpp-,nhsvv=8,kpfr=2,dfz-,cnn-,gkn-,hb=2,vnk-,px=2,hxd-,zthrd-,xv-,jzxp-,vkn=7,cxq-,ccf-,xfn-,lxmkfx=5,pljg-,lqfv=5,rfdrk=9,khn=5,cnr-,vr=9,kd-,ssd=5,mmsz=7,fnh-,mf=8,lvs=3,vgslz-,pfjml=7,dtck=8,dph-,gk=4,ntg-,lpd=2,fnv=1,mnphn-,xzbz=1,zd=8,gf=1,tr-,lpd=9,vjzt-,ss=7,qnd-,db=2,vz-,lxg-,khn=3,vkqx-,fjg-,zrs-,tnp-,rc=9,fdfc=4,tqx=1,scbjp-,nbtq=6,kmqjt-,jc=9,txpx-,pr-,vps-,zv-,vnhfc-,jmthd-,blfx=1,vqt=4,spfc-,tzjln-,cfnbp-,zf-,ndmt=4,xqfrg=2,cmbv=4,mtx-,ktj=5,nh=1,mm=6,xv=5,ng-,bfz=2,zj-,pt=6,njvd-,qcnnzx-,qgm=8,fjh-,zqr=9,tn-,zz-,mvmqfm=9,gt=3,vgslz=4,px-,fnh=7,njvd=8,jtsdd=2,rzjkqp-,np-,ph=5,zqr=6,cb=6,sxlh-,pfjml=2,dmp-,lxmkfx=2,kpqvtc=4,mvmqfm=1,rknz=8,zcjvl-,tq=1,nnn-,vc-,zdl-,ndmt-,dtt-,mf=4,qcnnzx-,zzx-,pkg=6,xfn-,rnsbt=8,rgh-,vp=2,vpk=1,zz=2,mkj-,mr-,lln-,dm-,cfnbp-,sbx=9,dsdm=1,kpqvtc-,zzx-,bqpp=9,lqf-,cqr-,mlcn-,spm=1,dhh=6,js=4,pg=1,vbmk=3,vqc-,ftz=4,zxt-,zz-,xtl=6,pr=9,cnr=8,rqx=4,bszd=3,rl=6,phl=4,dvmm=2,drs-,bnhz=4,cggz=7,nhsvv-,cnr-,bgg=4,tr=1,pjfk=8,fq-,kmm=2,jjd=9,dbsf-,sxlh-,xzt-,mjjk-,pfjml=8,lmlx-,xtsd-,ftz-,nq-,kd=3,tk=2,vth-,nrc=4,vqbp-,grfxxs=1,ssmflk-,mmsz=6,lh-,td=2,vc-,qht=1,ccs=3,fpg-,ff-,ppq=2,cl-,ff=9,gk=1,zzd-,mv-,pqf-,vq-,vtp=1,thncf-,gt=7,ksn-,bnhz=8,xmxf-,ktj-,cnr-,ctdbt-,cggz-,vps=8,ff=1,jhhqj-,hd-,dphx=3,zk-,bg-,pkg-,gh-,nl=4,dtv=1,ph=5,xk=4,sbt-,sjb=4,tslfp-,kftx-,gxg-,mjz=9,bzpv-,dvmm-,zlcmgc-,mvmqfm-,jmrz-,sf=3,zz=4,vsh-,kfp=9,cggz=4,pm=4,nlcrm-,pg=9,xhd-,spsx=9,xmxf=8,bbsk-,pr-,qhvz-,vqfz=7,dp=5,ndmt-,nlcrm-,mgt=8,gflrmd-,vkn-,jsv-,qrn=7,gk-,rc=9,qvlzn=2,xtsd-,xzl=8,vdf-,fb-,mr-,vrc=2,qpx-,bmnlf-,scbjp-,vpk=5,vjsg=3,rvcd=7,tk=2,xstdx=9,tcs-,zqr-,kpfr-,rz-,vgln-,dvmm-,lqfv=8,bszd=3,nglvx=9,lq=5,dnkf-,sfp=3,pxn-,blfx=6,zzd-,sbx-,dfz-,fq=2,qqp-,rtj-,sb-,nbtq=2,bb-,zpc=6,tfd-,zl-,scb=4,nfgp-,kftx-,zn=8,rh=3,fzm-,qvlzn=3,ctp-,qrn-,ztk-,pmz-,rh-,vpxv-,lvx-,cq-,jmrz=8,sqd=2,kftx-,ppq=7,dvz=3,vblpd-,jgmnxd-,gxx=6,vnk=5,ntg-,sjb=3,dkms=3,bgh-,zsx-,xrm=8,pkbv=7,vttk=7,lxg=5,jm=9,vqbp-,kfp-,hzlzn=5,hl=4,trg=9,lq=7,ksn-,mmsz=5,px=2,lcr=4,td-,hfrdk-,rnsbt-,qln=3,dvmm=6,gftx=6,ppq-,xbx=8,pvv=8,xcq-,tzjln-,tdl=8,vf=9,sxlh=9,bgh=5,bqpp-,zxt-,xs=5,kmm-,ps=5,ctdbt-,hd=4,md=7,xzl=5,jfz-,tzjln=9,gpg=5,lmlx=2,phsl=2,jx=3,lfl=4,kpfr-,db=9,fdl-,rm=3,bqpp=7,mp-,xv-,bpq-,pg=1,nlcrm-,xk-,mq-,lk=7,hrbj=1,hj=1,ss=8,hnf-,xqfrg-,tnfx=9,znb=8,kl-,lqf-,dsdm-,khn-,cct=4,bzj-,spsx-,lc=6,jfz=4,plp-,fb=1,bgkjq=2,pvv-,br-,cfnbp=5,sqjgc-,sv=5,mmsz-,dd-,lrpx=5,mgt-,hdxvhr=1,dsg=6,zz-,gkn-,fjg=7,px=4,lfg=7,jfjbj-,ghbr=4,ftz=1,lffv-,pjfk-,spfc-,mlcn-,vth-,qxkrd-,ctdbt-,qpx=5,gqsr-,sscn=7,ghbr-,vqbp=8,bgg-,zf=2,qxj=8,bpqv=6,hlg-,tn-,lfl-,bzj-,tk=4,ql-,gxx=6,gqsr-,mtx=1,rqg=7,zzx-,lcr-,bx=7,nl-,msbfzl-,bhfh-,sxlh=7,nsxz=8,bgg-,pfjml=4,pv-,qv-,kx=4,dp=5,gxg-,qpx=9,mjz=5,zxt-,tv=4,kx-,xtsd=7,txpx=4,hdxvhr=7,pzd=2,vqc=4,xjpbxm=3,dm-,rvcd-,ps-,hbmt=9,nsxz=5,cct-,xhs=3,cqr-,fm=3,pzd=5,qxkrd-,rz=8,pgd-,txpx-,xk-,hnf=7,hlg-,lcr-,nqcj=9,pgd-,spm=3,zk=5,jxj=9,vth-,srp-,sbx-,cs=1,vpk-,srp=7,sqjgc=7,ks=1,dvmm-,zqr=6,gbkt=5,rl=1,phl-,mg=9,rm=2,dsdm-,rz=2,pgd-,gf-,bxx-,nq=3,vtp=6,sbt=9,kpqvtc-,qcm-,td-,bnhz=3,rknz=6,mjjk=6,qf=9,thncf=5,bb-,vjsg-,cnn=6,jxj=6,vkn-,gbsp=3,kpfr=1,lqfv=6,kv-,gt=1,fq=4,kl=4,rtj-,vth-,pfjml-,hbmt-,vr=1,xmxf-,sc=1,cgp-,jx=1,chpn-,xcq-,vttk-,vpk=1,mnphn-,mtx-,gxx=1,cgp=2,qvlzn=4,sr-,ct-,rh=3,rzjkqp=2,ld=9,pljg=6,vlv-,rgh-,spfc-,jm=8,fkzq=4,xmxf-,gp-,chpn=8,xtl-,cggz-,xnmq=3,rnxt=1,znb-,nfgp-,ts-,bqpp-,fnln=3,pljg=5,hz-,kfp=4,cq-,bgkjq=9,vs-,zngsp=7,jsv=3,dbsf-,kx=4,ph-,xb-,dsg=6,sn-,jmrz=4,dzt=7,mnphn-,vk-,kkc-,kpn-,vblpd=6,vqbp-,dmp=6,hsb=1,zlcmgc-,vbmk-,dp-,tk=3,drs=8,pl=4,sbx-,jhl=9,rknz=5,qcm-,mp=8,vqfz=9,ctdbt-,qp=2,vsh=8,nkx=8,qxkrd=6,bpqv=9,cxq=3,nbtq=1,sxlh=4,fnv=5,vnkmzj-,gpg-,nh=8,zd=1,rzjkqp=6,qpx-,bzj=2,fkzq-,lxg-,bb-,lffv-,xs=3,rzjkqp-,bpqv-,bz=3,zn=5,br-,zthrd=5,kc=2,ss=2,kf-,bb-,bz=6,hb-,dtck=4,sxlh=9,mmsz-,znb-,mhh=3,nhsvv-,ntg=1,bqpp=2,thncf-,tnfx=8,nglvx=1,bzj=3,gcbtgm-,cmbv-,ctp-,pg-,zpc-,rpn=1,gn-,ncjb=8,kmr=3,tz-,bnhz-,dvz=2,mvmqfm=5,jc-,plt=6,cl=8,vc-,qgm=2,ss=5,jc-,cggz=4,chpn-,qln-,nh=8,pljg-,km-,pgd=7,tqx-,xhd=2,gmrrx=3,bhfh=6,bx=3,msbfzl=2,rm=6,qcnnzx=9,xgk=6,gct=4,kpjqgm-,jx-,tgqp=4,sv=2,xf-,ks=9,pzd=6,zrs=3,md-,thnmq-,zzd-,xnmq=3,rc=2,kmm=9,rz-,jc-,rsn-,dphx-,bqpp=7,vs=2,kkc-,sqd-,tdl=9,zbgdxg-,qgm-,gmrrx=7,cb=4,bx-,lvx=8,slzd=1,fzm=5,cs-,xs=5,xxj-,xhd-,qcm=2,xxj=6,vz=8,cqzt=2,fdfc-,vx=6,rpn-,gxx-,nhsvv=6,mktlhp-,vjzt=4,lztd=7,zs=7,mv=2,nlcrm-,tkpb=9,sxlh-,pv-,qxj-,xcq=8,xgk-,scbpb=3,dk=9,mjjk=3,lztd-,njvd=8,znjg=5,lxmkfx=5,snpgsm-,ph-,pr=1,rpgj=4,nzq=2,kc=2,rsn-,dzfqlb=6,gf-,qcm=1,tcs-,mm=2,fjh=6,vp=6,sl-,kfp=4,tslfp=9,hl=1,fzm-,lmlx=2,bnhz-,sfp-,pcnzf-,gct-,jc-,xk-,zpc=2,jxj=6,tzjln-,bqpp=5,pjfk-,cct=5,qgm=8,sxlh=7,lhks-,mmn-,rpn-,vp-,qnd=9,mjz=2,td-,gct=6,sfp-,cb-,tnb-,zf-,chpn-,pkg-,gs-,mmn=2,mnphn=9,pxvxlh-,fm-,vdf=2,vnhfc-,njvd=1,npd-,cl-,vhx-,kz-,hl=8,bpqv=7,ks-,pl=6,txkh-,mjz-,bl=1,cqzt-,bbsk=7,ghm=3,tpj=4,tv=2,qf=7,tpj=7,ztk-,mq=2,jtz-,vkn=4,cs-,xdfz-,ccf-,lxg=9,ctdbt=1,trzx-,bnhz=6,gf-,kjrc-,vr=1,msbfzl=2,vblpd=6,qxj=7,cjk-,nj=4,cjk-,sjb-,ng=4,rnsbt=4,rtj-,frgf-,tqx-,sbx=9,kmqjt=8,rfdrk=8,ctdbt=5,mldgtn=8,rfdrk=7,pnp-,phsl=3,vc-,hz-,rzjkqp=9,njvd-,qqp=7,pjfk=1,sscn=2,pkbv-,lfl-,vp=5,kr=4,ccf-,plp=8,lpd=5,mph-,rh=6,zl-,lc=2,jhhqj=5,xf=6,snpgsm-,lq-,sxlh=6,vsj-,trg=1,cl=1,vjsg-,gp-,tn-,mlcn=8,gmrrx=5,qfb-,fx-,tzjln-,tfd=2,bg-,bkxf-,qpm=3,npd-,ssmflk-,fpg-,rknz-,zngsp=1,nlcrm=4,pt-,vkz-,mq=7,mldgtn=2,gr=7,fr-,xzt-,mkj-,jmrz=5,lxmkfx-,pxvxlh=3,vbz-,nq-,sbt=8,rtj=8,ktj=3,bpq-,mq-,lqf=9,vp=7,vz=1,bb-,ndmt=4,vdf=7,mr-,fnh-,rzjkqp=7,sxlh-,bszd=1,vgslz=5,zd=2,tpnmp=6,fr=2,bgg-,lk=1,qpf-,bpq-,xt-,ps=7,pxvxlh=1,fkzq=7,mgpp-,cqzt=6,bbsk-,clg=7,ztk-,bl-,vjzt=4,tk-,plvd-,jsv-,zd=7,dm-,gxg=8,lxg=2,bgkjq-,np=4,frgf-,lh-,ssmflk-,bc-,vjsg=9,rfdrk-,jx-,pbk=7,npm=5,kjrc-,jfz=8,bz-,bfz=3,ld=6,hj=4,msbfzl=4,clg=2,vhx-,vq=1,hb=4,mmsz-,sbx-,xnmq-,cqbvs=8,hgp=5,qlf-,nfgp-,ztk=8,vnkmzj-,cmbv=9,jjd-,rz-,bl-,jfjbj=7,hxd-,tfd=6,sh-,frgf-,ctp-,sjb=7,vsh=6,br=7,vz=9,px-,lrpx-,fzm=3,tslfp=9,znfd=5,bpqv=2,mktlhp=2,hm=9,znfd-,xgk-,xdfz=7,gxx=8,vpxv=3,qfb-,qnd=1,gpg=1,txpx=4,zmlr=4,zk-,plt=5,dx-,qfb-,vqbp=2,hzlzn=3,bfz-,mgpp-,xf=1,fgmpc-,rl=9,fjg-,qpf-,tslfp-,qvlzn=3,gbsp-,scbjp=1,mktlhp-,jhl-,fdl-,jmrz=1,rc=8,dmp-,clg=2,xtl-,cqbvs-,qfb=9,lpd-,kmr=3,xh-,lh=4,spfc-,cnr=1,lqfv-,scb=7,kd-,rqx-,tpnmp=5,pjfk-,qz-,gf=7,tz=9,kjrc=5,td-,bl=3,dmp-,ccs=9,rzjkqp=5,npm-,kpn-,pljg=6,dsg-,bg-,mhh-,mvmqfm=4,xzl-,plp=7,tk=6,zn=7,njvd=6,lqfv=7,rzjkqp-,kmqjt=5,cv-,mf=7,gxx=3,pxvxlh=4,nbtq-,vqzhc=7,bpqv=2,sl=6,ccf=5,slzd-,ssmflk-,sf=3,vhx=8,mmsz-,chpn-,fzm=2,xtsd-,tvm=1,zk=9,hm=2,cv=1,lq=2,dzfqlb-,kmm-,rxv=5,txpsv-,nrc=7,ps-,gflrmd-,tv=6,gs=6,znfd-,kc=3,zzx=8,vc-,tvm-,rtj-,kqh-,dsg=9,fx=3,hm-,rsn-,lpd=1,zjvd-,nq=6,hgp=3,vqbp=5,jzxp=5,pxn-,js=4,zthrd=3,nj=3,znb-,ncjb-,kc-,kmr=6,lcr-,vs-,kpfr=3,jgmnxd=9,bhfh-,rv=4,ks=3,hf=9,bgg=4,fsz-,hf-,np-,zzd=8,pgd=6,kmqjt-,znb-,fb-,qlf-,zj=1,pvv-,nzq-,ng-,lmlx-,zdm=4,hvglb=9,nhsvv-,kjrc=4,hvglb=1,ctp-,qlf-,lfg-,jhhqj-,txpsv-,bxx=3,ppq=2,vhx=7,scb-,lq-,sscn=9,pljg-,gxg=2,cv=7,zm=6,hdxvhr=4,hpl-,mkj=5,zl=7,zcjvl-,xp=3,bszd-,lxmkfx=5,rgh=7,lztd-,xv=1,cjb-,rqx-,gflrmd=5,lqfv=1,fdfc=4,vblpd=6,tslfp=5,rnsbt-,tpnmp-,cmbv=6,cq=5,gk=2,zdtz=8,lhks=2,gr=2,cxq-,xzbz=7,bpqv-,cmbv=3,cqq-,bgg=2,znb=3,vkn=7,gxx-,pv-,vf=7,gbsp-,qp=6,grfxxs=2,vqc=6,lh-,msbfzl-,dfz-,fgmpc-,kmqjt=3,qrn-,pfjml-,pm-,qpf-,qg=8,vlv=4,cq=6,lq=1,tnfx=2,cgp-,lq-,vgln=7,bgh=3,ggm-,jtsdd=1,xk=2,rqx=5,zv-,mhh=2,bpq=6,fdfc=6,lmlx=7,hdxvhr=5,jgmnxd-,lvx-,vrzjf-,dtck=5,ph-,rqg=5,gf=9,nqcj-,vqzhc-,bj-,fjg-,qln-,jpc-,vnk=1,sbt-,qf=8,qrn=8,gpg-,nglvx-,dbsf-,hz=1,jfjbj-,hbmt=1,sqd=1,cl=7,bzj-,jtz-,vblpd=7,znfd=1,gpg-,drs=3,gn=7,mvmqfm-,cr=3,tpj-,ck=3,qp-,zrs-,tpj-,gcbtgm-,zv=8,lfg=8,jxj-,ftz-,zz-,fdfc-,plvd=9,spm-,fkzq-,xcq-,sqd=4,dph-,rsn=9,vjzt-,xt-,dsdm=4,qlf=3,qht=2,js-,sv-,slzd=9,spsx-,zk=1,rv-,jxj-,scb-,db-,ff=2,cq=9,nh-,fzm=1,cs-,rzjkqp=4,vx-,qp-,spm=9,tnb-,bgg-,phsl=2,lg=5,gmrrx=3,pfjml=1,psfnx-,dbsf=3,jmrz-,lztd-,vrzjf-,vkqx=8,mv-,sqd-,hrbj=8,tgqp-,sbt=6,lhks=2,vp-,mv=6,snpgsm=9,xf=3,tnb-,hl=5,vqbp=7,zd=1,fm-,hbmt=7,scb=1,txpsv=3,jf=6,rc=3,vs=7,qpx=1,sf=3,zbgdxg-,xv=7,xv-,hgp=3,nfgp-,qht=8,vblpd-,ql=9,kmr-,rtj=2,lpd-,rfdrk-,rxv=5,sbx-,rfdrk-,pgd=8,kpjqgm-,vjsg-,cgp-,fnln-,dvz=3,pbk-,mvmqfm-,lmlx-,ndmt=2,trzx=7,tnfx-,xgr-,zlcmgc=5,plvd=8,gs=5,sv=2,dk=9,vnkmzj-,vkn=3,xbx=9,kl-,psfnx=8,ppq-,vq=3,xzl-,mldgtn-,plvd=7,gcbtgm=1,sscn-,drs-,bnhz=2,lhks-,sf-,pbk-,sxlh=3,vkn=2,vqfz=9,gct=1,cmbv-,qgm=5,lg=6,tnp=6,jsv=7,mmn-,xnmq=3,vx-,fkzq=1,vqbp-,gbsp-,txpx=9,jtz-,hdxvhr=8,xk=4,xxj=3,vrc-,fjh-,pxn-,gbsp=8,hl=5,jm-,zn-,chpn-,nbtq=7,kqh-,chpn-,nnn-,hfrdk-,mp-,bgh-,ns-,vsj=3,fgmpc=1,kd-,dtck-,nh=4,frgf=3,cq-,pt-,vttk-,px-,smtd=7,ctf=8,zn=4,kl-,jjd=4,bzj=7,cnn-,mtx-,pzd=1,ssmflk=4,jgmnxd-,ccf=4,jmthd-,vnhfc=7,srp-,qxj=7,chpn-,nh=2,kkcd-,dm-,mmsz=4,fnln-,lq=6,kkc=1,bq-,nl=3,mmn-,jfz-,zf=4,sl=3,sqd=7,dtt=3,ql-,jmthd-,ndmt-,vqc=2,jjd=2,jpc=4,vrc=9,kpn-,gs-,mjz-,ftz=7,bq=5,cv-,xv=2,mktlhp=9,cmbv-,mtx=6,ggqq=7,fq-,rknz=3,xxj-,zngsp=3,rsn=5,xrb=3,vrc-,fb-,phsl-,plp-,pl=9,cr-,vpxv-,lk=4,khx-,rpgj=2,kd=7,md-,dvz-,rl-,dkz=9,fsz=8,vq-,pm-,xf=7,tv-,tk-,dz-,qqp-,bg=7,xb-,nfgp=9,ng=7,kfp=2,mp-,vbz-,lxg=5,xqv=1,npd-,pvv-,xzl-,slzd-,dmp-,jzxp-,dphx-,txpsv=7,mldgtn-,ql=2,xgk-,mv=7,rl=7,kjrc=6,rl-,jfz-,ctdbt-,tdl-,fq=6,lcr=6,hzlzn-,qpx-,nbtq-,td-,mr=8,zngsp=4,vps-,ssmflk-,djmlb=9,pxn=7,cqq-,nlcrm-,rt-,vgln=9,gn=2,nsxz-,cfnbp=2,xrb=8,ts-,bfz-,lh=1 diff --git a/2023/day15/src/lib.rs b/2023/day15/src/lib.rs new file mode 100644 index 0000000..e9d36eb --- /dev/null +++ b/2023/day15/src/lib.rs @@ -0,0 +1,56 @@ +pub fn part1(input: &str) -> u32 { + let mut res: u32 = 0; + + let inputs: Vec<String> = input.trim_end().split(',').map(|x| x.to_string()).collect(); + + for i in inputs { + let mut s = 0; + for ch in i.chars() { + s += ch as u32; + s *= 17; + s %= 256; + } + res += s; + } + + res +} + +pub fn part2(input: &str) -> u32 { + let mut res: u32 = 0; + + res +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn example_part1() { + let input = include_str!("../example.txt"); + let result = part1(input); + assert_eq!(result, 1320); + } + + #[test] + fn input_part1() { + let input = include_str!("../input.txt"); + let result = part1(input); + assert_eq!(result, 2331); + } + + // #[test] + // fn example_part2() { + // let input = include_str!("../example.txt"); + // let result = part2(input); + // assert_eq!(result, 2286); + // } + // + // #[test] + // fn input_part2() { + // let input = include_str!("../input.txt"); + // let result = part2(input); + // assert_eq!(result, 71585); + // } +} |