mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
Compare commits
14 Commits
2022/4-ran
...
2022/day-0
| Author | SHA1 | Date | |
|---|---|---|---|
| bbfa367775 | |||
| 951ed73024 | |||
| 79387b5f14 | |||
| a05dc588db | |||
| b080859356 | |||
| fead587b2a | |||
| eec886b5e2 | |||
| 45a6c78d77 | |||
| e80b5bde68 | |||
| 1cd5579bf6 | |||
| 7c7c69255d | |||
| 391bba24c5 | |||
| e887a8ad0d | |||
| 38a024d095 |
@@ -8,7 +8,7 @@ use criterion::BenchmarkId;
|
||||
use criterion::Criterion;
|
||||
|
||||
/// Number of days we have an implementation to benchmark
|
||||
const DAYS_IMPLEMENTED: u8 = 4;
|
||||
const DAYS_IMPLEMENTED: u8 = 25;
|
||||
|
||||
fn read_input(day: u8) -> Vec<u8> {
|
||||
let input_path = format!("inputs/{:02}.txt", day);
|
||||
|
||||
514
2022/inputs/05.txt
Normal file
514
2022/inputs/05.txt
Normal file
@@ -0,0 +1,514 @@
|
||||
[G] [D] [Q]
|
||||
[P] [T] [L] [M] [Z]
|
||||
[Z] [Z] [C] [Z] [G] [W]
|
||||
[M] [B] [F] [P] [C] [H] [N]
|
||||
[T] [S] [R] [H] [W] [R] [L] [W]
|
||||
[R] [T] [Q] [Z] [R] [S] [Z] [F] [P]
|
||||
[C] [N] [H] [R] [N] [H] [D] [J] [Q]
|
||||
[N] [D] [M] [G] [Z] [F] [W] [S] [S]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 7 from 6 to 8
|
||||
move 5 from 2 to 6
|
||||
move 2 from 4 to 1
|
||||
move 1 from 4 to 5
|
||||
move 5 from 7 to 6
|
||||
move 7 from 6 to 3
|
||||
move 5 from 9 to 2
|
||||
move 6 from 2 to 3
|
||||
move 2 from 7 to 9
|
||||
move 20 from 3 to 1
|
||||
move 11 from 1 to 6
|
||||
move 1 from 9 to 8
|
||||
move 3 from 8 to 2
|
||||
move 8 from 1 to 5
|
||||
move 10 from 8 to 4
|
||||
move 7 from 6 to 4
|
||||
move 1 from 8 to 3
|
||||
move 8 from 1 to 7
|
||||
move 16 from 4 to 8
|
||||
move 1 from 9 to 8
|
||||
move 1 from 5 to 2
|
||||
move 4 from 7 to 4
|
||||
move 5 from 6 to 7
|
||||
move 1 from 6 to 1
|
||||
move 8 from 7 to 4
|
||||
move 1 from 6 to 9
|
||||
move 12 from 4 to 5
|
||||
move 3 from 2 to 5
|
||||
move 1 from 6 to 2
|
||||
move 1 from 3 to 7
|
||||
move 1 from 3 to 2
|
||||
move 1 from 9 to 3
|
||||
move 1 from 7 to 8
|
||||
move 1 from 7 to 5
|
||||
move 1 from 3 to 2
|
||||
move 4 from 5 to 7
|
||||
move 5 from 5 to 7
|
||||
move 1 from 4 to 3
|
||||
move 1 from 3 to 9
|
||||
move 3 from 1 to 8
|
||||
move 1 from 9 to 1
|
||||
move 2 from 2 to 1
|
||||
move 2 from 2 to 7
|
||||
move 8 from 8 to 1
|
||||
move 3 from 5 to 2
|
||||
move 8 from 7 to 5
|
||||
move 7 from 1 to 3
|
||||
move 3 from 1 to 7
|
||||
move 1 from 1 to 5
|
||||
move 1 from 3 to 7
|
||||
move 7 from 5 to 8
|
||||
move 2 from 2 to 8
|
||||
move 1 from 3 to 2
|
||||
move 1 from 2 to 4
|
||||
move 1 from 4 to 8
|
||||
move 13 from 8 to 1
|
||||
move 13 from 5 to 9
|
||||
move 2 from 5 to 2
|
||||
move 7 from 9 to 3
|
||||
move 12 from 8 to 3
|
||||
move 4 from 9 to 3
|
||||
move 1 from 3 to 4
|
||||
move 2 from 2 to 3
|
||||
move 1 from 1 to 6
|
||||
move 1 from 2 to 3
|
||||
move 1 from 5 to 9
|
||||
move 7 from 7 to 4
|
||||
move 10 from 1 to 8
|
||||
move 1 from 1 to 4
|
||||
move 1 from 9 to 5
|
||||
move 2 from 5 to 1
|
||||
move 1 from 6 to 5
|
||||
move 3 from 8 to 9
|
||||
move 5 from 4 to 3
|
||||
move 4 from 4 to 1
|
||||
move 7 from 1 to 6
|
||||
move 2 from 5 to 7
|
||||
move 35 from 3 to 4
|
||||
move 4 from 9 to 1
|
||||
move 19 from 4 to 8
|
||||
move 1 from 7 to 6
|
||||
move 1 from 9 to 2
|
||||
move 10 from 4 to 5
|
||||
move 2 from 4 to 7
|
||||
move 3 from 4 to 3
|
||||
move 1 from 2 to 8
|
||||
move 1 from 1 to 9
|
||||
move 3 from 3 to 6
|
||||
move 4 from 8 to 6
|
||||
move 4 from 5 to 2
|
||||
move 2 from 8 to 3
|
||||
move 3 from 5 to 9
|
||||
move 12 from 6 to 1
|
||||
move 8 from 8 to 6
|
||||
move 2 from 9 to 1
|
||||
move 1 from 4 to 1
|
||||
move 1 from 3 to 8
|
||||
move 3 from 7 to 8
|
||||
move 2 from 9 to 7
|
||||
move 1 from 6 to 7
|
||||
move 10 from 6 to 8
|
||||
move 4 from 2 to 5
|
||||
move 1 from 3 to 7
|
||||
move 7 from 5 to 7
|
||||
move 13 from 8 to 1
|
||||
move 29 from 1 to 4
|
||||
move 8 from 7 to 8
|
||||
move 1 from 1 to 3
|
||||
move 3 from 7 to 6
|
||||
move 1 from 1 to 9
|
||||
move 15 from 4 to 1
|
||||
move 1 from 3 to 6
|
||||
move 10 from 1 to 6
|
||||
move 10 from 6 to 7
|
||||
move 1 from 4 to 9
|
||||
move 1 from 9 to 1
|
||||
move 1 from 9 to 7
|
||||
move 6 from 7 to 8
|
||||
move 1 from 1 to 6
|
||||
move 5 from 6 to 5
|
||||
move 21 from 8 to 9
|
||||
move 5 from 1 to 9
|
||||
move 2 from 9 to 5
|
||||
move 3 from 5 to 6
|
||||
move 3 from 7 to 9
|
||||
move 4 from 4 to 6
|
||||
move 6 from 8 to 7
|
||||
move 6 from 6 to 3
|
||||
move 2 from 7 to 9
|
||||
move 1 from 7 to 2
|
||||
move 6 from 3 to 2
|
||||
move 1 from 6 to 4
|
||||
move 4 from 5 to 9
|
||||
move 1 from 4 to 5
|
||||
move 9 from 4 to 6
|
||||
move 7 from 6 to 4
|
||||
move 10 from 9 to 2
|
||||
move 5 from 7 to 5
|
||||
move 10 from 2 to 7
|
||||
move 2 from 5 to 4
|
||||
move 2 from 5 to 9
|
||||
move 4 from 9 to 4
|
||||
move 1 from 8 to 6
|
||||
move 7 from 7 to 2
|
||||
move 1 from 5 to 4
|
||||
move 2 from 7 to 1
|
||||
move 1 from 5 to 7
|
||||
move 3 from 6 to 2
|
||||
move 4 from 4 to 5
|
||||
move 1 from 2 to 7
|
||||
move 10 from 4 to 7
|
||||
move 3 from 7 to 3
|
||||
move 17 from 9 to 4
|
||||
move 1 from 1 to 4
|
||||
move 1 from 1 to 5
|
||||
move 5 from 2 to 7
|
||||
move 1 from 9 to 2
|
||||
move 5 from 4 to 8
|
||||
move 2 from 9 to 7
|
||||
move 4 from 8 to 1
|
||||
move 3 from 4 to 8
|
||||
move 1 from 2 to 5
|
||||
move 1 from 9 to 2
|
||||
move 6 from 4 to 8
|
||||
move 3 from 7 to 5
|
||||
move 1 from 4 to 9
|
||||
move 1 from 9 to 1
|
||||
move 3 from 1 to 9
|
||||
move 4 from 8 to 5
|
||||
move 2 from 9 to 8
|
||||
move 4 from 2 to 5
|
||||
move 8 from 7 to 2
|
||||
move 5 from 8 to 5
|
||||
move 2 from 7 to 8
|
||||
move 1 from 3 to 5
|
||||
move 1 from 1 to 2
|
||||
move 1 from 1 to 6
|
||||
move 2 from 3 to 6
|
||||
move 5 from 2 to 8
|
||||
move 4 from 7 to 1
|
||||
move 7 from 8 to 5
|
||||
move 1 from 1 to 5
|
||||
move 3 from 8 to 3
|
||||
move 1 from 9 to 3
|
||||
move 7 from 2 to 3
|
||||
move 2 from 2 to 8
|
||||
move 2 from 4 to 8
|
||||
move 1 from 8 to 5
|
||||
move 1 from 1 to 4
|
||||
move 2 from 4 to 7
|
||||
move 2 from 7 to 1
|
||||
move 3 from 2 to 3
|
||||
move 3 from 5 to 2
|
||||
move 1 from 8 to 3
|
||||
move 3 from 3 to 2
|
||||
move 5 from 2 to 1
|
||||
move 17 from 5 to 8
|
||||
move 9 from 8 to 1
|
||||
move 11 from 3 to 5
|
||||
move 8 from 8 to 5
|
||||
move 2 from 8 to 5
|
||||
move 16 from 1 to 4
|
||||
move 13 from 4 to 7
|
||||
move 6 from 5 to 2
|
||||
move 2 from 4 to 8
|
||||
move 5 from 7 to 9
|
||||
move 2 from 1 to 2
|
||||
move 7 from 7 to 1
|
||||
move 1 from 1 to 4
|
||||
move 1 from 9 to 8
|
||||
move 7 from 2 to 8
|
||||
move 1 from 4 to 7
|
||||
move 2 from 9 to 4
|
||||
move 1 from 4 to 1
|
||||
move 1 from 3 to 5
|
||||
move 2 from 9 to 8
|
||||
move 11 from 8 to 7
|
||||
move 2 from 6 to 5
|
||||
move 1 from 6 to 9
|
||||
move 1 from 1 to 9
|
||||
move 1 from 9 to 1
|
||||
move 4 from 1 to 4
|
||||
move 2 from 1 to 8
|
||||
move 1 from 1 to 2
|
||||
move 1 from 9 to 5
|
||||
move 2 from 4 to 3
|
||||
move 2 from 2 to 7
|
||||
move 2 from 3 to 9
|
||||
move 1 from 9 to 1
|
||||
move 1 from 9 to 1
|
||||
move 5 from 5 to 1
|
||||
move 19 from 5 to 6
|
||||
move 5 from 1 to 4
|
||||
move 1 from 2 to 9
|
||||
move 1 from 1 to 3
|
||||
move 7 from 5 to 8
|
||||
move 1 from 3 to 6
|
||||
move 8 from 7 to 3
|
||||
move 7 from 4 to 8
|
||||
move 3 from 8 to 5
|
||||
move 1 from 4 to 1
|
||||
move 1 from 9 to 4
|
||||
move 1 from 4 to 9
|
||||
move 1 from 5 to 2
|
||||
move 2 from 5 to 6
|
||||
move 2 from 8 to 2
|
||||
move 7 from 8 to 1
|
||||
move 1 from 1 to 7
|
||||
move 3 from 6 to 9
|
||||
move 2 from 3 to 2
|
||||
move 1 from 2 to 1
|
||||
move 1 from 8 to 7
|
||||
move 2 from 9 to 6
|
||||
move 2 from 9 to 5
|
||||
move 1 from 5 to 6
|
||||
move 1 from 2 to 8
|
||||
move 2 from 1 to 7
|
||||
move 1 from 4 to 3
|
||||
move 3 from 2 to 5
|
||||
move 7 from 1 to 3
|
||||
move 10 from 3 to 4
|
||||
move 3 from 5 to 4
|
||||
move 1 from 3 to 8
|
||||
move 3 from 3 to 2
|
||||
move 1 from 8 to 1
|
||||
move 1 from 1 to 3
|
||||
move 3 from 8 to 3
|
||||
move 5 from 4 to 6
|
||||
move 1 from 2 to 3
|
||||
move 4 from 6 to 4
|
||||
move 1 from 5 to 7
|
||||
move 4 from 3 to 4
|
||||
move 1 from 2 to 8
|
||||
move 12 from 7 to 6
|
||||
move 1 from 8 to 2
|
||||
move 2 from 2 to 7
|
||||
move 1 from 8 to 4
|
||||
move 23 from 6 to 3
|
||||
move 14 from 3 to 6
|
||||
move 15 from 4 to 6
|
||||
move 1 from 8 to 6
|
||||
move 10 from 3 to 7
|
||||
move 2 from 4 to 2
|
||||
move 11 from 7 to 8
|
||||
move 2 from 2 to 6
|
||||
move 44 from 6 to 9
|
||||
move 21 from 9 to 3
|
||||
move 12 from 3 to 6
|
||||
move 1 from 7 to 4
|
||||
move 1 from 4 to 7
|
||||
move 9 from 3 to 2
|
||||
move 2 from 8 to 6
|
||||
move 3 from 2 to 4
|
||||
move 17 from 9 to 1
|
||||
move 3 from 4 to 6
|
||||
move 2 from 2 to 9
|
||||
move 4 from 9 to 2
|
||||
move 10 from 6 to 9
|
||||
move 1 from 7 to 6
|
||||
move 4 from 9 to 5
|
||||
move 4 from 2 to 4
|
||||
move 14 from 1 to 5
|
||||
move 4 from 4 to 3
|
||||
move 3 from 2 to 9
|
||||
move 9 from 9 to 7
|
||||
move 1 from 2 to 5
|
||||
move 9 from 8 to 5
|
||||
move 8 from 7 to 2
|
||||
move 4 from 3 to 8
|
||||
move 5 from 6 to 2
|
||||
move 3 from 1 to 6
|
||||
move 1 from 7 to 1
|
||||
move 4 from 2 to 4
|
||||
move 3 from 6 to 4
|
||||
move 3 from 8 to 3
|
||||
move 13 from 5 to 2
|
||||
move 2 from 3 to 5
|
||||
move 12 from 5 to 9
|
||||
move 1 from 3 to 5
|
||||
move 1 from 5 to 9
|
||||
move 1 from 8 to 3
|
||||
move 4 from 9 to 5
|
||||
move 6 from 4 to 5
|
||||
move 12 from 9 to 7
|
||||
move 1 from 9 to 3
|
||||
move 1 from 3 to 2
|
||||
move 12 from 5 to 6
|
||||
move 12 from 7 to 2
|
||||
move 1 from 3 to 7
|
||||
move 1 from 4 to 8
|
||||
move 33 from 2 to 8
|
||||
move 1 from 7 to 5
|
||||
move 1 from 1 to 2
|
||||
move 4 from 5 to 4
|
||||
move 3 from 2 to 5
|
||||
move 34 from 8 to 6
|
||||
move 1 from 4 to 3
|
||||
move 1 from 5 to 7
|
||||
move 1 from 7 to 5
|
||||
move 3 from 4 to 9
|
||||
move 2 from 9 to 7
|
||||
move 1 from 9 to 4
|
||||
move 1 from 3 to 7
|
||||
move 1 from 5 to 8
|
||||
move 1 from 5 to 1
|
||||
move 1 from 5 to 7
|
||||
move 1 from 4 to 8
|
||||
move 1 from 1 to 4
|
||||
move 1 from 4 to 2
|
||||
move 3 from 7 to 5
|
||||
move 2 from 8 to 5
|
||||
move 1 from 2 to 8
|
||||
move 4 from 6 to 2
|
||||
move 1 from 8 to 6
|
||||
move 1 from 7 to 9
|
||||
move 29 from 6 to 7
|
||||
move 4 from 2 to 3
|
||||
move 2 from 5 to 8
|
||||
move 1 from 9 to 5
|
||||
move 2 from 8 to 1
|
||||
move 23 from 7 to 5
|
||||
move 2 from 6 to 1
|
||||
move 23 from 5 to 6
|
||||
move 1 from 3 to 6
|
||||
move 4 from 5 to 9
|
||||
move 2 from 1 to 3
|
||||
move 5 from 3 to 8
|
||||
move 2 from 6 to 5
|
||||
move 2 from 1 to 4
|
||||
move 1 from 9 to 8
|
||||
move 1 from 9 to 1
|
||||
move 1 from 4 to 6
|
||||
move 2 from 5 to 6
|
||||
move 6 from 7 to 8
|
||||
move 2 from 9 to 2
|
||||
move 18 from 6 to 5
|
||||
move 21 from 6 to 4
|
||||
move 1 from 1 to 6
|
||||
move 2 from 6 to 7
|
||||
move 2 from 7 to 9
|
||||
move 2 from 2 to 8
|
||||
move 7 from 4 to 3
|
||||
move 12 from 5 to 3
|
||||
move 1 from 9 to 5
|
||||
move 1 from 9 to 4
|
||||
move 6 from 5 to 2
|
||||
move 17 from 3 to 4
|
||||
move 3 from 4 to 3
|
||||
move 1 from 2 to 4
|
||||
move 5 from 2 to 8
|
||||
move 1 from 5 to 8
|
||||
move 19 from 8 to 7
|
||||
move 1 from 3 to 6
|
||||
move 1 from 8 to 4
|
||||
move 1 from 6 to 1
|
||||
move 15 from 4 to 6
|
||||
move 1 from 1 to 4
|
||||
move 3 from 3 to 5
|
||||
move 4 from 6 to 7
|
||||
move 1 from 4 to 7
|
||||
move 10 from 6 to 7
|
||||
move 16 from 4 to 5
|
||||
move 24 from 7 to 2
|
||||
move 8 from 7 to 8
|
||||
move 1 from 4 to 2
|
||||
move 6 from 8 to 7
|
||||
move 1 from 8 to 7
|
||||
move 1 from 6 to 9
|
||||
move 14 from 5 to 4
|
||||
move 9 from 7 to 8
|
||||
move 4 from 5 to 1
|
||||
move 2 from 1 to 5
|
||||
move 3 from 8 to 6
|
||||
move 2 from 6 to 9
|
||||
move 2 from 2 to 8
|
||||
move 6 from 2 to 7
|
||||
move 3 from 4 to 6
|
||||
move 1 from 3 to 4
|
||||
move 3 from 5 to 7
|
||||
move 1 from 6 to 9
|
||||
move 5 from 7 to 2
|
||||
move 4 from 9 to 1
|
||||
move 1 from 7 to 9
|
||||
move 9 from 8 to 4
|
||||
move 5 from 1 to 2
|
||||
move 2 from 6 to 1
|
||||
move 6 from 4 to 7
|
||||
move 1 from 7 to 3
|
||||
move 1 from 3 to 9
|
||||
move 1 from 9 to 7
|
||||
move 1 from 6 to 7
|
||||
move 9 from 4 to 5
|
||||
move 7 from 7 to 9
|
||||
move 3 from 7 to 5
|
||||
move 1 from 9 to 2
|
||||
move 6 from 9 to 8
|
||||
move 4 from 4 to 5
|
||||
move 1 from 4 to 2
|
||||
move 1 from 4 to 2
|
||||
move 2 from 1 to 2
|
||||
move 1 from 9 to 8
|
||||
move 10 from 2 to 4
|
||||
move 8 from 2 to 7
|
||||
move 12 from 2 to 9
|
||||
move 6 from 7 to 4
|
||||
move 1 from 1 to 2
|
||||
move 8 from 9 to 8
|
||||
move 7 from 5 to 1
|
||||
move 9 from 4 to 3
|
||||
move 14 from 8 to 4
|
||||
move 1 from 8 to 4
|
||||
move 1 from 1 to 5
|
||||
move 1 from 5 to 2
|
||||
move 3 from 2 to 4
|
||||
move 1 from 7 to 1
|
||||
move 1 from 7 to 3
|
||||
move 2 from 1 to 7
|
||||
move 3 from 5 to 7
|
||||
move 2 from 7 to 6
|
||||
move 1 from 6 to 5
|
||||
move 3 from 7 to 1
|
||||
move 1 from 6 to 8
|
||||
move 1 from 8 to 7
|
||||
move 1 from 3 to 6
|
||||
move 1 from 7 to 1
|
||||
move 4 from 1 to 4
|
||||
move 6 from 3 to 2
|
||||
move 3 from 1 to 2
|
||||
move 3 from 3 to 6
|
||||
move 3 from 2 to 6
|
||||
move 6 from 6 to 5
|
||||
move 1 from 1 to 4
|
||||
move 1 from 9 to 6
|
||||
move 5 from 2 to 1
|
||||
move 3 from 1 to 2
|
||||
move 2 from 9 to 8
|
||||
move 3 from 1 to 5
|
||||
move 1 from 9 to 7
|
||||
move 25 from 4 to 1
|
||||
move 1 from 1 to 7
|
||||
move 2 from 8 to 3
|
||||
move 13 from 1 to 9
|
||||
move 2 from 3 to 5
|
||||
move 8 from 5 to 9
|
||||
move 4 from 2 to 1
|
||||
move 2 from 6 to 7
|
||||
move 10 from 5 to 9
|
||||
move 4 from 7 to 2
|
||||
move 2 from 2 to 3
|
||||
move 9 from 9 to 2
|
||||
move 4 from 4 to 5
|
||||
move 4 from 5 to 4
|
||||
move 5 from 1 to 4
|
||||
move 10 from 4 to 5
|
||||
move 22 from 9 to 1
|
||||
move 2 from 2 to 7
|
||||
move 3 from 2 to 1
|
||||
move 6 from 2 to 6
|
||||
move 1 from 7 to 1
|
||||
move 10 from 5 to 7
|
||||
move 15 from 1 to 4
|
||||
move 13 from 1 to 5
|
||||
move 3 from 6 to 8
|
||||
move 1 from 8 to 9
|
||||
1
2022/inputs/06.txt
Normal file
1
2022/inputs/06.txt
Normal file
@@ -0,0 +1 @@
|
||||
grvrnvrnnjljbjqjpqjjvhhzwwrbwwbblrltrrpbbbbqnnqbbbbsvbvmbvmbbrsrqrzrllwbbbqzqrqnqrnrjnnjccdggwqqhrrjcjmjmllgrlglhlclmlvlvsshwwsggmfmdfddgdfftrrczrcczhzppgdgrdggghmmdwwqgggslglfgfcgccmjcjwjrwjrjcrjjsgjjvddpwpgpbbgwbgwwhnhfftbffhpfphhfqfrqfrfnfpprvrsrhrfrllfhhrsrhssvfsvsnvsnsswtwtlthllrjjwddtggzczgcchwcwppfbbdvdrdzrdrvrwwsbsfbssqfsfjsjcscttlztllgjjlbbdsdtssvvvwlvlqqnhqqtdqtddjcdcjjpbphhgtgtqtzqqzhqqtgtvtmvtvrvqrvvfmfmppzzbwwnddzttfpfrrlddbppfqppnwnswwdhwdwjjqljqqthtnhnddgmgcmgcmgcmmfmfttrzzfdzztllmjlllgcgbbcqcvccpnndbdjbjmmzbztzptzpprpddptpprhhvlvmlmpmmljjnnjsjfjjvgjjvzzfgfzfbftbftttgstgstgtpggflfcfqqtctltgltldlzdlzzmmlddnvddzfddppmnpptzptpvttwstwswvwrvvbfbjjjbmjjdvdvrvdddrwrhrzrqqhghhrwhwhrrmppsgpsgszzdfdfwwmtwtvwvgvffmqqqtqntqnnjcncbnbwnnzggrdrqqjbqjjwjqqqwlqwlwzlljhhfsfsqsrqqhwqqwbbqbvvlflrrlglbbjhhjmhjjcmcjcgczcfcgcqqczcnnvjnnlddmpmcppgvgjgddvrrnsnmnqmqgmmnppwgwcgwgssbddgtdgdgmdgmgvvmjmvmjmvvsfssdgdghdggbfbqbdbjbsbmmrpmrprggbllwrwpwtppzvppzsssdnsdnnvnhvvvzvfzfqqnnmlnltldtdvdbdblddsmmlccmlmvlmvmmcsctctrtsrstsbsrshsddlmddmppgsscttnrtrqqcvcwwlnlznnnvcnvvtnvnbnmbmvmppjgjdjtddmpdmdvvmgvvdqdlqlhhzccsggjdjsdsttctjctjtfjttppdzpzzbjbwwmwbblslzslzszlzrrcbrrfggvcczjjtbbdnnggbwblwlbwlwqqfvfqfddrrfccvlllhmhhhrthrthrrnbnzbbpzplphprrrnbbghhnshnhbblqqqvwwffnmnmhhtccpqpvqvbvnvvfnfsnffdjdllwffcddgcgrgjrggchcpcddtbbdtdmtdmmhhtphtpppclcpcvcjvcjjfqfzqqphpnhnrnhhpdhhtfhhbbmqmfmsmvssgqqfssqgglnnqmnmbnmbbllrdrgdrdvrdvdsvvnddgtgddcdqdsqdqbqqlhhwdhdgdcgcdchchrchhpvvpgvgrrfggwfwgmpddbhfngtrwswfszgsggnpsntjpslrpjqsffzrlnbnzdtqpqtjzwlhhgrsrbvnccnsjmzcbqgcbtbqlzhnpnhhrrvqwjwzzvrlcrmjhcscrqhpqmfzbnvcwwqhcjjlnggmpbwztzfswmsbjshnsgfmdlzvzczhrdwgwbghszpnbfpctrshbfhspsczcqcrrqcpwwpfzhjqtpqgjbztrpzrlgfdjbmlwdvlvnfmdzbwsbbhlbszvwcpztlchjrqbmsftltmqpfgdpmdgjvwqqtjsqlfqrwmsnlqgsbqfwsdnfvzthmbplvszfcmlptlcjpnfpjsphsmmjplwjqphgvzbtbjtpttqhlwtgnrjvmvsfsztmsqszzlhqqhfslsvhzgtsssfctzgsqbgdzlpwbsmpcnjqshhhcwqdsdzdhnjfqzqnqdlrpddcgrgldgqbjmdtwgppdczzrjvmcfqjbpjzbtjmgdphlbwnsnpfdqlhwvvmpwzsrztnwvtlbphljmjwsgbphgmwhdmfhpvsmvsjccjhfvqtvfmmlnggncltvtrgmbtfqsvfnlvcmjnjwzcrpjnsgntvhjbtdlptshbhhchqmsprhqzdnfpjqccdfvnzjtlbsmmwvzlwlvmsbrnhqctvtvbfhntdctjnrbcrrlmsnwbbjbcbbgrrhfqwzwwfgvsvgbwnttghtgpspzwzfhffsqjvwwttntnvlwftsfvtttgnprzrzsghvjrdtsfdvzswhmrfcdqsgvrlhzbnvbmjlqrftnnbtwqtvlvwznfbslhdqjbntdgpprfqchjvgvzjssdztjlzwfljjmfvzrbbtczggzqwrnqqgzzcbqjcpfqfrbwtdjrrvbszsjdjcpdfjscsvnltcgwvqsgnhbfgnfnddnpmbzbptrmvqzpvbdpfdvtlmgnnjwflgdbfnmvsdnmlvgcpwflwvdbtbfwtfpsmqsplnzwlwgvbjrhghwrnrswsggbqpdjcjrgbgnsqdvwzzwftvjqgjzzcdvpbbjzpphmbcqmrjvgqwfgrsnqvhwflmhgrlvbpwdcsrlqwfrwppqbrdhwqtvczpclpsbsjcptgblbbsqmbhjjgzwvlcnhnzcttmpjsgchmppgphqlzlcsqcgbbjgtjjvmttdztfdptzgvmpnqrcmpmcdlpnbztllvqbggqbqhlqvdwsrwzsjwfrqvcbvsgfdptmrzpvdfblmhlzrvpmsljlqqzrhlnmwncpfhvqlsbtrjbfcrnfvjvddrhdbbczjdsrdvzlbqrccssdzcpmdsqbprjppfzdwfdswptgzcmjqfhcwsqfqhvrslffqfbcvhdzljzrmtwmfdwzdhhjcmbjtvjhzzwfqhrcslztdbnlwmmhbbbgdscjcdzftnchqfnflnsdqjscfrqpnfbftpzvtmrwncqfqqflschpfnjsjlqcjdjgtwpqhgcnjdmnnvmmpwdspmnrgqrptqwcvbtdwpqlbtwpqgwgfrzlrhtvrvzhmhmwhfdsrhpcczqfltsgtgrfwcvlcvtlhqqwnrqgzpnzbfmzbdwqwbsfvbshrgzqdbgvrhzhzlbqsfzttmsnmrqmwgtzbvdqdrbgcpclzjrhdbjtpcdbbznjgtbwbqrnpvffdmwtrbhhstcmnjcwbbnmpbvmjprtzgcptmtrffwhvfgdljnrbbrblbfbgdwtjrtgqgrpvpgjqrjzczvvlspgdbzftqgqvgdqlglbgvgjdcztznszcwfqhmwbrbjcfstzdcmdsssqfhtzpdgmzjscvbdzgbhhgdqgvfwrzmhdrhlsvlzjjzbzdljcbhncppwrtptjgszlqsrqpzqcsgvdvzmgvwgsncnbffttslphcstqvfwbwzbflmshcbnhpljgqwmmwwzlgpbcqnrtqlwcjcrclfdrnnmvtbfdztdfvtqrsgdptfcfpzpsldhzmrngggfvdqggtlfqqwsldprcffsstnnpmsbbvghdbpprqbssnprdbqclzqtgsrczwcvqwrrfmmfwsndvtvqljwwglrgbphdvvwgctbbmtrbpzqtspgrlhmnhjcdwhwvssgspzjbcfjttjqbdpdmptfzzjcfqljpqddfssmffqprvbptfvdshsdmfmdtmlbnmbmjjjsgmlmwmgcwhbrbgchrstptvdlqgddfzddlzhwjmsvvcjwvqtzjtsctfmzchlbrvlgdzbvdlbfpvhptpltrdmcgjghcpwvwqqnrzdtnmgdncplhdpsgpnbprbgshffwwsdhpgqsbmwdtpnhhltlcqfrjtswcchzvlhdgrmjwhgwppdjqlgmdhwbllqvzrchgclmqdlghjsvmwlflmhhmdzbfjhjnvwphnjbclmdpgflqgtfsmsjslntfcmtbphnrgpdcqtjzjttdtgjmvhzsrfnrjqssvwpcslpfstbpfsrsntmftmdgsqrrsnddqfmchrhtlhmqndvvllnvltdzfphjqnvmcdsgfpcmjftgdpntjzplqljhtthvnbzbzwvfnqsjvnfwhmtbsspjslgfjvdgfjpwrsgqwntntjcqtdgnhnsfwhhqfwbwhdrftj
|
||||
983
2022/inputs/07.txt
Normal file
983
2022/inputs/07.txt
Normal file
@@ -0,0 +1,983 @@
|
||||
$ cd /
|
||||
$ ls
|
||||
dir gqcclj
|
||||
dir lmtpm
|
||||
dir nhqwt
|
||||
dir qcq
|
||||
dir vwqwlqrt
|
||||
$ cd gqcclj
|
||||
$ ls
|
||||
62425 dqp.gjm
|
||||
174181 hrtw.qsd
|
||||
273712 pflp.mdw
|
||||
169404 zlthnlhf.mtn
|
||||
180878 zprprf
|
||||
$ cd ..
|
||||
$ cd lmtpm
|
||||
$ ls
|
||||
dir clffsvcw
|
||||
163587 cvcl.jqh
|
||||
dir dcqnblb
|
||||
dir dtpwln
|
||||
dir fvt
|
||||
dir hrcrw
|
||||
dir jdqzmqn
|
||||
236754 nrdmlj
|
||||
205959 pflp.mdw
|
||||
dir qcq
|
||||
dir rsn
|
||||
129926 vdgcqdn.sqd
|
||||
dir zprprf
|
||||
$ cd clffsvcw
|
||||
$ ls
|
||||
6997 dcqnblb.wbh
|
||||
145711 dqp
|
||||
159225 pflp.mdw
|
||||
$ cd ..
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
dir dcqnblb
|
||||
dir gfn
|
||||
dir lpswsp
|
||||
dir lvt
|
||||
dir zprprf
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
2020 grpdmd.ggz
|
||||
dir zpswzfvg
|
||||
$ cd zpswzfvg
|
||||
$ ls
|
||||
206998 zprprf.gnw
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd gfn
|
||||
$ ls
|
||||
277530 rhbvtblc.mvw
|
||||
$ cd ..
|
||||
$ cd lpswsp
|
||||
$ ls
|
||||
173180 dcqnblb
|
||||
$ cd ..
|
||||
$ cd lvt
|
||||
$ ls
|
||||
dir hjllwsvl
|
||||
dir ptbt
|
||||
$ cd hjllwsvl
|
||||
$ ls
|
||||
dir wqnc
|
||||
$ cd wqnc
|
||||
$ ls
|
||||
64695 grpdmd.ggz
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ptbt
|
||||
$ ls
|
||||
150880 vvbt.gtp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
dir ldzslndn
|
||||
dir qftt
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
dir bwqqsbhg
|
||||
129454 vbn
|
||||
$ cd bwqqsbhg
|
||||
$ ls
|
||||
108701 zprprf.gss
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qftt
|
||||
$ ls
|
||||
64268 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dtpwln
|
||||
$ ls
|
||||
196215 cvcl.jqh
|
||||
dir dpwg
|
||||
dir ldzslndn
|
||||
dir znnsqqh
|
||||
$ cd dpwg
|
||||
$ ls
|
||||
192388 gmh
|
||||
47754 grgzh.qdl
|
||||
99449 hqsh
|
||||
dir pbmf
|
||||
50061 pflp.mdw
|
||||
192902 qcq.pgg
|
||||
dir rmpvj
|
||||
dir scgc
|
||||
$ cd pbmf
|
||||
$ ls
|
||||
210083 wpfnwbl.mgf
|
||||
$ cd ..
|
||||
$ cd rmpvj
|
||||
$ ls
|
||||
125738 nmlnbvrd
|
||||
226214 zprprf.jnp
|
||||
114257 zprprf.srs
|
||||
$ cd ..
|
||||
$ cd scgc
|
||||
$ ls
|
||||
182115 rrc.rcc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
201992 qcrm.cpd
|
||||
$ cd ..
|
||||
$ cd znnsqqh
|
||||
$ ls
|
||||
85635 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fvt
|
||||
$ ls
|
||||
dir dcqnblb
|
||||
dir gnc
|
||||
75864 vfn
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
dir dcqnblb
|
||||
dir lbnflwsh
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
269901 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd lbnflwsh
|
||||
$ ls
|
||||
33336 grpdmd.ggz
|
||||
42861 phg.wmc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd gnc
|
||||
$ ls
|
||||
dir jhjbjsp
|
||||
dir jjppr
|
||||
$ cd jhjbjsp
|
||||
$ ls
|
||||
96177 ldzslndn
|
||||
$ cd ..
|
||||
$ cd jjppr
|
||||
$ ls
|
||||
181016 dqp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd hrcrw
|
||||
$ ls
|
||||
261376 dtjfpppr.dww
|
||||
54658 vsrgvw.pfn
|
||||
$ cd ..
|
||||
$ cd jdqzmqn
|
||||
$ ls
|
||||
52342 dcpndc.vlg
|
||||
171946 gggpchh.tbb
|
||||
dir ldzslndn
|
||||
11156 nbfrfvv.gzw
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
107873 cvcl.jqh
|
||||
216034 gfdjrbz
|
||||
68844 pqllfrrh.jcf
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qcq
|
||||
$ ls
|
||||
152886 ldzslndn.ltn
|
||||
105125 vwplh.vbf
|
||||
$ cd ..
|
||||
$ cd rsn
|
||||
$ ls
|
||||
15385 hqcmjdgv.jjv
|
||||
105735 qcq.bzg
|
||||
58805 snczcsp
|
||||
26668 vbn
|
||||
$ cd ..
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
dir chbmq
|
||||
dir dcqnblb
|
||||
dir dqp
|
||||
dir nfspb
|
||||
89506 zprprf.hnt
|
||||
$ cd chbmq
|
||||
$ ls
|
||||
dir cnjvw
|
||||
dir dqp
|
||||
151434 frsvrdnt
|
||||
dir msztjvcb
|
||||
240689 qcq.jlh
|
||||
dir sjzrcg
|
||||
97312 vnr.zfr
|
||||
dir zprprf
|
||||
$ cd cnjvw
|
||||
$ ls
|
||||
dir bpbs
|
||||
252403 cqhtshc
|
||||
dir djmjhn
|
||||
10935 fhqmswr
|
||||
6582 pdwml.ldd
|
||||
dir qcq
|
||||
219282 rfmd
|
||||
$ cd bpbs
|
||||
$ ls
|
||||
147582 bnhwsnsj.gdm
|
||||
61362 cvcl.jqh
|
||||
152857 vdgcqdn.sqd
|
||||
$ cd ..
|
||||
$ cd djmjhn
|
||||
$ ls
|
||||
dir bjdbcjbb
|
||||
dir dcqnblb
|
||||
dir dqp
|
||||
dir lgdwtt
|
||||
$ cd bjdbcjbb
|
||||
$ ls
|
||||
110710 cvcl.jqh
|
||||
252792 hmshctr.lgz
|
||||
dir mjhtmbj
|
||||
189745 shsswcgr
|
||||
dir tfnhp
|
||||
194940 vbn
|
||||
dir zprprf
|
||||
$ cd mjhtmbj
|
||||
$ ls
|
||||
dir dqp
|
||||
dir hbthpcmb
|
||||
$ cd dqp
|
||||
$ ls
|
||||
200832 sbcrz.qgw
|
||||
$ cd ..
|
||||
$ cd hbthpcmb
|
||||
$ ls
|
||||
55191 ffcntg
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tfnhp
|
||||
$ ls
|
||||
276825 dqp
|
||||
161538 gqmr.wgb
|
||||
$ cd ..
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
287638 dcqnblb.ssp
|
||||
41274 hgmrvj.mwf
|
||||
249118 sbb.gsf
|
||||
105141 wwrg.gqz
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
1957 btmmc
|
||||
32386 dtzbzg.dhm
|
||||
dir mmrbj
|
||||
98283 ntmhfgtl.pmf
|
||||
dir zprprf
|
||||
$ cd mmrbj
|
||||
$ ls
|
||||
273194 wnsq
|
||||
251527 zprprf
|
||||
$ cd ..
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
27678 ldzslndn.rrl
|
||||
62866 ljf.fdj
|
||||
148502 qcq.dlg
|
||||
dir rvgqvm
|
||||
179231 tllnmhn.pjp
|
||||
64033 vbn
|
||||
dir zcdrj
|
||||
$ cd rvgqvm
|
||||
$ ls
|
||||
dir ntbv
|
||||
262324 prhgj.szz
|
||||
dir qbvdh
|
||||
$ cd ntbv
|
||||
$ ls
|
||||
116608 cgv.fvj
|
||||
175200 swpswq.twt
|
||||
$ cd ..
|
||||
$ cd qbvdh
|
||||
$ ls
|
||||
160353 sdhfrb.wjn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zcdrj
|
||||
$ ls
|
||||
283262 ctl
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dqp
|
||||
$ ls
|
||||
dir jfzm
|
||||
111438 rdrgb.mjf
|
||||
64194 wgtmqrq
|
||||
dir zprprf
|
||||
$ cd jfzm
|
||||
$ ls
|
||||
158774 pflp.mdw
|
||||
$ cd ..
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
215264 sgsstcp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd lgdwtt
|
||||
$ ls
|
||||
dir qcq
|
||||
$ cd qcq
|
||||
$ ls
|
||||
165461 ldzslndn.vvb
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qcq
|
||||
$ ls
|
||||
dir dpd
|
||||
165044 grpdmd.ggz
|
||||
82343 ldzslndn
|
||||
dir mwg
|
||||
176689 psjcwp.wct
|
||||
44404 qcq.zwd
|
||||
$ cd dpd
|
||||
$ ls
|
||||
84087 dqp
|
||||
227386 zprprf.gfs
|
||||
$ cd ..
|
||||
$ cd mwg
|
||||
$ ls
|
||||
214086 pflp.mdw
|
||||
dir sjjsdn
|
||||
225859 wcdt
|
||||
158892 zprprf.frs
|
||||
$ cd sjjsdn
|
||||
$ ls
|
||||
260121 gplgp.dfn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dqp
|
||||
$ ls
|
||||
dir hcrwclpg
|
||||
dir zphd
|
||||
$ cd hcrwclpg
|
||||
$ ls
|
||||
dir cmqntjj
|
||||
16393 ldzslndn.qbm
|
||||
91152 qqdtc.zdq
|
||||
$ cd cmqntjj
|
||||
$ ls
|
||||
272266 ldzslndn.pll
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zphd
|
||||
$ ls
|
||||
165711 chftwcsw.fqw
|
||||
256871 cvcl.jqh
|
||||
251168 zprprf.gfv
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd msztjvcb
|
||||
$ ls
|
||||
206231 brzn.lmn
|
||||
dir dcqnblb
|
||||
21571 dqp
|
||||
dir fmn
|
||||
45779 mlfctz.cjr
|
||||
288827 pflp.mdw
|
||||
220578 qcq.fqf
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
198121 ghbwgs
|
||||
93681 nmqhl.vpq
|
||||
$ cd ..
|
||||
$ cd fmn
|
||||
$ ls
|
||||
29407 mdfws.qvs
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd sjzrcg
|
||||
$ ls
|
||||
155120 ddclvsjr.rpq
|
||||
136029 ldzslndn.dcm
|
||||
dir vhzh
|
||||
$ cd vhzh
|
||||
$ ls
|
||||
212446 vbn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
240335 crt.gqh
|
||||
185363 gnmm.qgh
|
||||
dir ldzslndn
|
||||
dir nwl
|
||||
dir qll
|
||||
277043 vbn
|
||||
217796 vtvgpdl.vtm
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
273570 cvcl.jqh
|
||||
68510 fgdmz.hrc
|
||||
dir npq
|
||||
dir swjrzzrm
|
||||
$ cd npq
|
||||
$ ls
|
||||
97923 dzcjsqwt
|
||||
$ cd ..
|
||||
$ cd swjrzzrm
|
||||
$ ls
|
||||
180599 tmpgn.bjf
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd nwl
|
||||
$ ls
|
||||
171833 dlwrfhh.qgn
|
||||
$ cd ..
|
||||
$ cd qll
|
||||
$ ls
|
||||
219926 dcqnblb.bvn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
dir lvpb
|
||||
276198 tbgcm.qct
|
||||
$ cd lvpb
|
||||
$ ls
|
||||
142590 bvhjlld
|
||||
268259 gnjfg.sgb
|
||||
dir qcq
|
||||
206220 qcq.zsg
|
||||
258137 rrsw.dnb
|
||||
dir tmr
|
||||
215549 vbn
|
||||
$ cd qcq
|
||||
$ ls
|
||||
dir mmpgd
|
||||
dir tdsz
|
||||
dir tmfvsjwc
|
||||
$ cd mmpgd
|
||||
$ ls
|
||||
70793 jwbnpwnn
|
||||
$ cd ..
|
||||
$ cd tdsz
|
||||
$ ls
|
||||
246310 tdvrhhg.bzq
|
||||
$ cd ..
|
||||
$ cd tmfvsjwc
|
||||
$ ls
|
||||
103899 grpdmd.ggz
|
||||
287850 ldzslndn
|
||||
125930 llhr
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tmr
|
||||
$ ls
|
||||
83344 fbtfcg.hqp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dqp
|
||||
$ ls
|
||||
dir lbgmcbv
|
||||
dir nbg
|
||||
$ cd lbgmcbv
|
||||
$ ls
|
||||
81776 wzdzzdp
|
||||
$ cd ..
|
||||
$ cd nbg
|
||||
$ ls
|
||||
dir mfsgjp
|
||||
155574 pflp.mdw
|
||||
$ cd mfsgjp
|
||||
$ ls
|
||||
199400 vdgcqdn.sqd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd nfspb
|
||||
$ ls
|
||||
262412 csrdtbs
|
||||
73867 vbn
|
||||
136389 zqps.hjt
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd nhqwt
|
||||
$ ls
|
||||
123766 cvcl.jqh
|
||||
dir dhrtvctp
|
||||
222086 grpdmd.ggz
|
||||
dir gzg
|
||||
26005 lhpmz.tgz
|
||||
dir mcnjwwfr
|
||||
117122 msn.gst
|
||||
$ cd dhrtvctp
|
||||
$ ls
|
||||
224079 vdgcqdn.sqd
|
||||
$ cd ..
|
||||
$ cd gzg
|
||||
$ ls
|
||||
124395 dqp
|
||||
dir wqdbtqm
|
||||
$ cd wqdbtqm
|
||||
$ ls
|
||||
237354 pflp.mdw
|
||||
212019 vdgcqdn.sqd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd mcnjwwfr
|
||||
$ ls
|
||||
92504 cshdztf
|
||||
dir dctl
|
||||
dir dqp
|
||||
dir flcrmhlj
|
||||
161879 grpdmd.ggz
|
||||
dir gtt
|
||||
dir hlbnhchz
|
||||
220093 mdtdsgvm.zgg
|
||||
dir twntr
|
||||
287192 vbn
|
||||
$ cd dctl
|
||||
$ ls
|
||||
dir bbhch
|
||||
155396 hrrj.jzm
|
||||
164971 pblqmwj.vdb
|
||||
dir wnlgfpvf
|
||||
$ cd bbhch
|
||||
$ ls
|
||||
dir dpqtp
|
||||
dir jvdrcw
|
||||
$ cd dpqtp
|
||||
$ ls
|
||||
174135 gwb.qrb
|
||||
$ cd ..
|
||||
$ cd jvdrcw
|
||||
$ ls
|
||||
215993 dcqnblb.cqp
|
||||
200800 stjttf.ngc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wnlgfpvf
|
||||
$ ls
|
||||
135978 cvcl.jqh
|
||||
dir dqp
|
||||
54018 lbrfmt
|
||||
$ cd dqp
|
||||
$ ls
|
||||
270516 dcqnblb.jqw
|
||||
dir dqp
|
||||
144626 grpdmd.ggz
|
||||
157731 hvcv.rhp
|
||||
133773 lnnt
|
||||
76250 vdgcqdn.sqd
|
||||
$ cd dqp
|
||||
$ ls
|
||||
41504 zprprf.cmc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dqp
|
||||
$ ls
|
||||
dir dqp
|
||||
dir ldzslndn
|
||||
236737 mqzcvm.fjh
|
||||
239746 nhcdz.ncj
|
||||
dir rpchqq
|
||||
248824 vdgcqdn.sqd
|
||||
250937 zrchht.mwg
|
||||
$ cd dqp
|
||||
$ ls
|
||||
203381 qcq.djm
|
||||
$ cd ..
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
dir dqp
|
||||
dir fptnzlv
|
||||
dir gmbnpm
|
||||
dir vhvblt
|
||||
$ cd dqp
|
||||
$ ls
|
||||
19579 qcq.lhg
|
||||
$ cd ..
|
||||
$ cd fptnzlv
|
||||
$ ls
|
||||
209930 dcqnblb
|
||||
$ cd ..
|
||||
$ cd gmbnpm
|
||||
$ ls
|
||||
dir ldzslndn
|
||||
dir qcq
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
11075 pflp.mdw
|
||||
$ cd ..
|
||||
$ cd qcq
|
||||
$ ls
|
||||
dir tdp
|
||||
$ cd tdp
|
||||
$ ls
|
||||
40741 vdgcqdn.sqd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd vhvblt
|
||||
$ ls
|
||||
dir lzr
|
||||
$ cd lzr
|
||||
$ ls
|
||||
62245 gbnj.llg
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd rpchqq
|
||||
$ ls
|
||||
dir bcs
|
||||
dir dcqnblb
|
||||
dir fvjzn
|
||||
dir lrphzrv
|
||||
$ cd bcs
|
||||
$ ls
|
||||
179794 bbn.dzb
|
||||
242069 cmjdmzjf.zgf
|
||||
1703 cvcl.jqh
|
||||
dir gnmhwj
|
||||
dir ldzslndn
|
||||
152520 qltpsz.jsj
|
||||
dir sqqjfps
|
||||
$ cd gnmhwj
|
||||
$ ls
|
||||
dir gvs
|
||||
201600 hptn.ftf
|
||||
dir hzrnb
|
||||
dir qcq
|
||||
dir sqhl
|
||||
$ cd gvs
|
||||
$ ls
|
||||
152358 zprprf.mlh
|
||||
$ cd ..
|
||||
$ cd hzrnb
|
||||
$ ls
|
||||
94290 gplsfd
|
||||
$ cd ..
|
||||
$ cd qcq
|
||||
$ ls
|
||||
91909 vmqd.bmg
|
||||
$ cd ..
|
||||
$ cd sqhl
|
||||
$ ls
|
||||
238673 vdgcqdn.sqd
|
||||
262885 zmdvr.nfg
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
240461 mdz
|
||||
84303 qtj
|
||||
$ cd ..
|
||||
$ cd sqqjfps
|
||||
$ ls
|
||||
88753 fwn.tff
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
dir dqp
|
||||
189996 dqp.pvp
|
||||
$ cd dqp
|
||||
$ ls
|
||||
dir qvfjz
|
||||
196506 vbn
|
||||
$ cd qvfjz
|
||||
$ ls
|
||||
209316 pflp.mdw
|
||||
107459 rwpbh.vpt
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fvjzn
|
||||
$ ls
|
||||
241464 cvcl.jqh
|
||||
dir dqp
|
||||
dir ldzslndn
|
||||
dir msp
|
||||
125 pflp.mdw
|
||||
131895 vbn
|
||||
$ cd dqp
|
||||
$ ls
|
||||
34019 pflp.mdw
|
||||
202957 vbn
|
||||
$ cd ..
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
147492 cvcl.jqh
|
||||
248719 spc.rfv
|
||||
$ cd ..
|
||||
$ cd msp
|
||||
$ ls
|
||||
184407 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd lrphzrv
|
||||
$ ls
|
||||
dir bbwqmbg
|
||||
81858 cvcl.jqh
|
||||
dir dqp
|
||||
248670 gqqsww.tsn
|
||||
199141 grpdmd.ggz
|
||||
dir ldzslndn
|
||||
34514 ldzslndn.ctw
|
||||
dir tln
|
||||
214615 zprprf.fwm
|
||||
$ cd bbwqmbg
|
||||
$ ls
|
||||
129750 flf
|
||||
dir pvlw
|
||||
dir qcq
|
||||
126 sqcqphz.tbm
|
||||
$ cd pvlw
|
||||
$ ls
|
||||
198005 jfvj.hdv
|
||||
$ cd ..
|
||||
$ cd qcq
|
||||
$ ls
|
||||
dir wgdzws
|
||||
$ cd wgdzws
|
||||
$ ls
|
||||
253522 ldzslndn.qwt
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dqp
|
||||
$ ls
|
||||
281993 cvcl.jqh
|
||||
dir hwqjlwcb
|
||||
50532 msccz.qgm
|
||||
102187 trv.tnq
|
||||
111 wplnmj.bfl
|
||||
$ cd hwqjlwcb
|
||||
$ ls
|
||||
267580 dhjqb.dsb
|
||||
153195 ldzslndn.jqv
|
||||
41526 mvwcwc.zsc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
58666 cvcl.jqh
|
||||
79950 dqp.tmc
|
||||
242217 hns.lrb
|
||||
dir njswzh
|
||||
240692 vdgcqdn.sqd
|
||||
dir zvmjvcdm
|
||||
52909 zzh
|
||||
$ cd njswzh
|
||||
$ ls
|
||||
149732 cvcl.jqh
|
||||
dir rnmfd
|
||||
$ cd rnmfd
|
||||
$ ls
|
||||
75368 dqp.hmv
|
||||
14350 vbn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zvmjvcdm
|
||||
$ ls
|
||||
dir jgczt
|
||||
$ cd jgczt
|
||||
$ ls
|
||||
dir qcq
|
||||
95941 qzvvwshv.jwc
|
||||
$ cd qcq
|
||||
$ ls
|
||||
273942 pflp.mdw
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tln
|
||||
$ ls
|
||||
dir bmcng
|
||||
1518 lrg
|
||||
dir vnjfrhp
|
||||
$ cd bmcng
|
||||
$ ls
|
||||
38917 fqcrt
|
||||
$ cd ..
|
||||
$ cd vnjfrhp
|
||||
$ ls
|
||||
dir dcqnblb
|
||||
dir dqp
|
||||
247186 grpdmd.ggz
|
||||
dir ldzslndn
|
||||
169216 pflp.mdw
|
||||
206487 vdgcqdn.sqd
|
||||
16976 vlsrzjmb.mmc
|
||||
257938 wjl
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
dir dqp
|
||||
$ cd dqp
|
||||
$ ls
|
||||
184133 qcq
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dqp
|
||||
$ ls
|
||||
dir dcqnblb
|
||||
31612 dqp.pnt
|
||||
212283 ldzslndn
|
||||
61600 vdbfc.ddj
|
||||
197189 wpv.wff
|
||||
$ cd dcqnblb
|
||||
$ ls
|
||||
62412 tfzllmrj
|
||||
dir zprprf
|
||||
$ cd zprprf
|
||||
$ ls
|
||||
dir bqnpsl
|
||||
dir dszrvpzc
|
||||
$ cd bqnpsl
|
||||
$ ls
|
||||
261548 spbsbbsw.cmn
|
||||
$ cd ..
|
||||
$ cd dszrvpzc
|
||||
$ ls
|
||||
188232 sggpqslr.smn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ldzslndn
|
||||
$ ls
|
||||
dir bgnhd
|
||||
dir pgvcdzwz
|
||||
dir qgzhm
|
||||
$ cd bgnhd
|
||||
$ ls
|
||||
56989 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd pgvcdzwz
|
||||
$ ls
|
||||
110034 qhgnndv
|
||||
$ cd ..
|
||||
$ cd qgzhm
|
||||
$ ls
|
||||
247232 grpdmd.ggz
|
||||
269292 ldzslndn
|
||||
153843 tpz
|
||||
dir vnschqwr
|
||||
162392 wnq.btb
|
||||
$ cd vnschqwr
|
||||
$ ls
|
||||
43005 fvtvzfqm.jvc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd flcrmhlj
|
||||
$ ls
|
||||
245668 dcqnblb.sdj
|
||||
dir lffj
|
||||
229909 pflp.mdw
|
||||
280176 vbn
|
||||
$ cd lffj
|
||||
$ ls
|
||||
116451 jmzz.jdd
|
||||
dir pjlwb
|
||||
162815 pmhlqq.snr
|
||||
226183 zffth
|
||||
$ cd pjlwb
|
||||
$ ls
|
||||
67518 qcq.hjq
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd gtt
|
||||
$ ls
|
||||
52105 grpdmd.ggz
|
||||
126869 zprprf.fgj
|
||||
$ cd ..
|
||||
$ cd hlbnhchz
|
||||
$ ls
|
||||
3064 dqp.lrw
|
||||
278756 grpdmd.ggz
|
||||
177208 ldzslndn.wlv
|
||||
141685 vbn
|
||||
$ cd ..
|
||||
$ cd twntr
|
||||
$ ls
|
||||
63747 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qcq
|
||||
$ ls
|
||||
226858 cwblp.zgp
|
||||
dir jjqsmfhr
|
||||
dir rjbqtrq
|
||||
dir vwmpnbts
|
||||
141715 wdbhdch
|
||||
286381 zprprf
|
||||
$ cd jjqsmfhr
|
||||
$ ls
|
||||
dir btmm
|
||||
dir fqndtlgq
|
||||
$ cd btmm
|
||||
$ ls
|
||||
4031 dqp.lrr
|
||||
dir fzdd
|
||||
$ cd fzdd
|
||||
$ ls
|
||||
dir vnwpn
|
||||
$ cd vnwpn
|
||||
$ ls
|
||||
dir bzlgsl
|
||||
dir ztvzrrbv
|
||||
$ cd bzlgsl
|
||||
$ ls
|
||||
9294 ldzslndn.sqr
|
||||
$ cd ..
|
||||
$ cd ztvzrrbv
|
||||
$ ls
|
||||
256017 cvcl.jqh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fqndtlgq
|
||||
$ ls
|
||||
271528 ccbmgp.bwd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd rjbqtrq
|
||||
$ ls
|
||||
122150 ldzslndn
|
||||
46467 tpdvp.pjf
|
||||
$ cd ..
|
||||
$ cd vwmpnbts
|
||||
$ ls
|
||||
47518 fcrwfzvm
|
||||
263343 gmc.lrt
|
||||
212764 qcq
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd vwqwlqrt
|
||||
$ ls
|
||||
dir psrs
|
||||
$ cd psrs
|
||||
$ ls
|
||||
281998 zprprf.hml
|
||||
99
2022/inputs/08.txt
Normal file
99
2022/inputs/08.txt
Normal file
@@ -0,0 +1,99 @@
|
||||
133120320210233440424211425033311533112110111336536142004454550513525522325223123404213204010312200
|
||||
201131111014211324423255354022022243226445013613610423653614522135534505055120330313403031333103010
|
||||
312033232323231244025301315245341424106564334260061464515142114141551050411122254121204214442432210
|
||||
101223224313414001513045124413405604251532415616200623342234245060512030200002055453441222043022132
|
||||
302000022010423415300513533001221654231646352603366222420353100303160621313144421120541324031322221
|
||||
022041343104313414435021243154525050055065506466215004364316065443031303052541012204020300331224312
|
||||
103341401201343234101335152026143021665443260024145323023321363412215203352344024010350241320230403
|
||||
113420142141151035404302242616255522460104100534576523546245441245051223305614204355454223220120301
|
||||
141313120334140413444311032422155464031057323373712672513175353623531154646460010504312302300002224
|
||||
222122233241135333145102102244620325637577115357373355166254434732406430504542404102101335430322111
|
||||
303334221050505214133200215501142243567431213624743475716112467711442460620524310041114411011423020
|
||||
314200333004550151023253063621162447552734266222424315622125733562141045411643325165010440012411104
|
||||
002041023423222500521530364652321342767176666734452465675417573276212213343035032650010252311440041
|
||||
424112310115314154624123026322722176144615437667237551164455332134452657635041110204303331153310423
|
||||
403331525242111322464321027125164326531546671615634451453753666614652523355664316050035035431040223
|
||||
043240150545010061116502263626227235517673287377662722735257631252161774623714640414211242003124031
|
||||
120153432445266666010553121747235535567222344854553227754373283562766712275433030145041514430322020
|
||||
130205252451225625553367153422361135376345652238658565468884466665635712475577163231554521534443142
|
||||
111112125502543266131422234726554665525278247588365447865236325776254766323137341434403365242323513
|
||||
303144132003506154604725457356146262354554756268227328243768455722852644644163423635454133132303535
|
||||
355321430425362320027571672735837582654822875282477453446323242873743335342262324741355251635040132
|
||||
134315335666154514547724226424352647855667536237263286847676436882327536177762242121655513144251300
|
||||
540433012152253201644772517187257277883368828477658659796427367852347254442546347411045431414354124
|
||||
123440236041532033152645165666552487887293658447738333978367787858534683322123676621510536503333401
|
||||
513523462114216537146475772264724378429935336847846348444575554346687726237537112655265045664650022
|
||||
152254463440132245722174776775434287876777476649865634494799993998688326736773121545343121065304241
|
||||
250224151321236513227671833576566739347663376834388478944395578563955424353347453672417622666244155
|
||||
515223301360505722213752783545553644495694566664938776366634393433784855746658113613537562051065554
|
||||
554241245610333147211334537367835857366454575934899676895788946595666473766285253431355325406031452
|
||||
100314521636253352672223432738853968767459797559486648888395749643933624738538781345525612342532041
|
||||
341462234622615555235573736647638675877393747847457878744844899855446378852378466172227414636330202
|
||||
345125124225634624432677378235488673587578945954767695474694483979633396738646725252521775306550112
|
||||
413420352557414334236458423883348897736674897485778466695756868398399557654674634472471146623221025
|
||||
251143521254271126368347667353953675589776644454498798849645686658369675764886773874127564444411365
|
||||
221413142252611772737673846553885549867478965666795885777985495763559573589863845361134756354652555
|
||||
243065641366675316826485533843887969469458797465896675796454946875597936434758642384462157714462066
|
||||
520553502161266638252882759578566955579648578498775589886979787578896857766344736358531725733564135
|
||||
424035430516117723442423478595343855468789497988556567558494878666699996375768427758374271236421335
|
||||
252313015177661777278432468494855844559656687766987679695575558744879656544795683583262246546564621
|
||||
066230444571526644743382974447835556985988567697575656976987588986595376466888728567376162756500435
|
||||
466346066733165454546438886894789699679455689766757985688888664759568963398874674733715475614334101
|
||||
325014552177542688745486585579599747867559596676796865787567755944786444539663262282351475561402534
|
||||
241163303516225237353826934978454869995779765759887659668665685578986859343646684568651136735352562
|
||||
450361264326612736655359595445797648876877955597997887987765775498545883744548752574473726565411112
|
||||
554605215356217343577344399893857478777797855566878769757669857854854856357865565536552164136515351
|
||||
526446641376374684266375494495458695869978975788699978669887967564769488567376982882762633361324360
|
||||
131314671231526545866684867949989786895865986986978678997899677764988874736369482822342624761635224
|
||||
623254034413371684428636874768586849979569867987768799666579796798469744978968758623884477174221325
|
||||
451620621666445477562568544366499474968796999686779676678989576768596484478933764745243527321126622
|
||||
454130052341168772645439448775675586969558878998779766779998798589986885955369648636673756137543515
|
||||
052463667567627485865289577459895546659595768687867979887989666587865576357344373227477771625616331
|
||||
460630633631764266522893997758984967975685969969798677679989558694657986684466928784764257141450213
|
||||
624130637644652532575536775488944945689777797679988979876565896659695947897698966634635115577122034
|
||||
312106635521463635433584476586795448766769568869779667989675669974989668369378542526764316562641343
|
||||
162151455625714643563689555468449898859656786796979798687579985864586658783373657585741615177725655
|
||||
522113305657225658843435489885646557577988797667968888669868768989959977879557377455733555272325032
|
||||
304510566333111422674633384687874565587979787768979689685867565897484896499888736286384551117254613
|
||||
501463041455354857783745556844585568845776985978966685877875599798784456633539465754543114144204310
|
||||
033044042511137887672349889484876755578886688778959586777755687684946795536886522746575472552603266
|
||||
506221035322726455557224463853355996897775558969955685797667999588974556935495475632746634441041151
|
||||
433136161743725565262636565676447685475989796568778598958657768879849778786859753335661722543205305
|
||||
265454361556653132263478888989675487694888975877759959776785674478666588788563747772733262666414514
|
||||
052441631644734262283652379957577654769979687765967795697668686969788694345962866843241632716655446
|
||||
236003436545632166356247457495793686988694668988898785686844466844799668333966735544674562633412352
|
||||
521460600027621624875854349394389587767654998655578976768847769685597639387383648267451531624063352
|
||||
342222114334344716267243334967869638699594976567878976765649455495834476654882454551336614731204621
|
||||
033566313156263553885434364795389663465876465857797479766958478858465479967473865454116236530266023
|
||||
312652012603144155543338267594667756579949844587785799854455597889659839838335338227724422251205254
|
||||
300006533237512225736566526838475448787546947968579975977675656694697397732838257677271224106345603
|
||||
133143326544516157647526755363599347754745759889457964588954897669586537634253625642342472416641244
|
||||
154255220262671713413357272553997888597745494647794956965689397737688378433337485552276212554465555
|
||||
100240040401314462336283253854484757937369955476776566463546476496874852334852883176722554655020500
|
||||
114224164252562264455188387248845988369836588899857935337746669656565572827235667727764740332042104
|
||||
210035410165643165676172383567428973379998596753776399638478657839665546428878531777515004325230423
|
||||
210124643010215635561443542385838474565467799589387569934754637575772733563765332372676641151131504
|
||||
302221012422133674231332744234367852633548864367379437949776375866557752335873376756770315423300102
|
||||
332125266633066263556242566636554222886478446383395355568773939525563625678526672212234343222625410
|
||||
025325451166410144267526457225543863563576656495967865696633785745578788783545643421165350000423343
|
||||
002055431510265615765734547166486528454663847694453963495886284323368575223225414276066312104153401
|
||||
355245141260142612771253626632378444477523462347872628387736452238277834561572523626005254261254042
|
||||
203545210065351052363237141625823577635472367448676276452678742864237273162112414622640501555430121
|
||||
335510044411666505051763342712375473385677658477545568853568734655885763312211631300144242225254322
|
||||
420503535251235101224431771412136627846753333256668624663675776462422374227471570160056336045543305
|
||||
311442220344522144201454355125161416822475756464544562823568565277363143626236634605524051151344323
|
||||
221042430004563020306242752654674353744234455564453257548654537765566764222366445225313642034222311
|
||||
410315020300414623613025143245525766347157877736466252545465214236744364172443246502214503112203230
|
||||
342304354225251006345461616171626576425171512572743837515273314522745717111151266035240243530314400
|
||||
101402542354002125435251304674647534521162334775342133371111747561164265140621412560624450505304430
|
||||
011211315525203435452400223603127166746242764515517634515312173434163762164444142306041434112503201
|
||||
312201041521122523410120106532007714457744313215145447526753371116262403622123305243410143403304001
|
||||
420143230433241404304622552610552657576751252637557577175144676122663421114064036341501055504120312
|
||||
321114124142324224151525015553652243236362311234247651266113535462142056365353412114023231401141232
|
||||
144010233331150422332523034411415500511027722375253755262514425243333354512150011301540445044301243
|
||||
321223141143321313415515024451144622413543514327723454716501265226013550620005111202312303242203422
|
||||
220312222242043544521300416060642531526303363025212311016020154415132623214322110011054242222314401
|
||||
120043213410140522500232142235034335033562221102412305131143065020436150033340525535242031300403012
|
||||
333011210021031104353104420453564321600565055235040060414452305642301521213234000231332120021102311
|
||||
213000422032423433105500120521112552552162045443040565055142555024614151234210022135411312102303010
|
||||
311113213314300134505043355233124354500023350433035532626242646113034040102425400244311432332422101
|
||||
@@ -1,6 +1,7 @@
|
||||
//! Common helper utilities to all days
|
||||
|
||||
use anyhow::Result;
|
||||
use nom::combinator::map;
|
||||
use nom::error::ErrorKind;
|
||||
use nom::error::ParseError;
|
||||
use nom::Finish;
|
||||
@@ -93,6 +94,17 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
/// Add an index to repeated successful invocations of the embedded parser.
|
||||
pub fn enumerate<I, O, E>(f: impl Parser<I, O, E>) -> impl FnMut(I) -> IResult<I, (usize, O), E> {
|
||||
let mut index = 0usize;
|
||||
|
||||
map(f, move |v| {
|
||||
let res = (index, v);
|
||||
index += 1;
|
||||
res
|
||||
})
|
||||
}
|
||||
|
||||
/// Return the minimum and maximum of two unordered variables
|
||||
pub fn minmax<T>(a: T, b: T) -> (T, T)
|
||||
where
|
||||
|
||||
@@ -1,9 +1,166 @@
|
||||
use std::cmp::Ordering;
|
||||
|
||||
use anyhow::Result;
|
||||
use nom::branch::alt;
|
||||
use nom::bytes::complete::tag;
|
||||
use nom::bytes::complete::take;
|
||||
use nom::bytes::complete::take_until;
|
||||
use nom::character::complete::newline;
|
||||
use nom::combinator::map;
|
||||
use nom::combinator::opt;
|
||||
use nom::multi::fold_many1;
|
||||
use nom::multi::many1;
|
||||
use nom::sequence::delimited;
|
||||
use nom::sequence::preceded;
|
||||
use nom::sequence::terminated;
|
||||
use nom::sequence::tuple;
|
||||
use nom::IResult;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
use crate::common::enumerate;
|
||||
use crate::common::parse_input;
|
||||
|
||||
type Move = (usize, usize, usize);
|
||||
type OwnedStacks = Vec<Vec<u8>>;
|
||||
|
||||
fn parse_row<'a>(input: &'a [u8], stacks: &mut OwnedStacks) -> IResult<&'a [u8], ()> {
|
||||
// Forgive me for this crime
|
||||
fold_many1(
|
||||
enumerate(terminated(
|
||||
alt((
|
||||
// Parse a delimited value into a Some(content)
|
||||
map(delimited(tag("["), take(1usize), tag("]")), |v: &[u8]| {
|
||||
Some(v[0])
|
||||
}),
|
||||
// Or an empty stack into a None
|
||||
map(tag(" "), |_| None),
|
||||
)),
|
||||
opt(tag(" ")),
|
||||
)),
|
||||
|| (),
|
||||
move |_, (index, c)| {
|
||||
if let Some(b) = c {
|
||||
if stacks.len() <= index {
|
||||
stacks.resize_with(index + 1, Vec::new);
|
||||
}
|
||||
|
||||
stacks[index].push(b)
|
||||
}
|
||||
},
|
||||
)(input)
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
fn parse_stacks(input: &[u8]) -> IResult<&[u8], OwnedStacks> {
|
||||
let mut stacks = Vec::new();
|
||||
|
||||
let (input, _) = terminated(
|
||||
fold_many1(
|
||||
terminated(|input| parse_row(input, &mut stacks), newline),
|
||||
|| (),
|
||||
|_, _| (),
|
||||
),
|
||||
// Skip the line with the numbers
|
||||
take_until("\n\n"),
|
||||
)(input)?;
|
||||
|
||||
// Reverse the stacks since we parsed them top-down
|
||||
for stack in &mut stacks {
|
||||
stack.reverse();
|
||||
}
|
||||
|
||||
Ok((input, stacks))
|
||||
}
|
||||
|
||||
fn parse_task(input: &[u8]) -> IResult<&[u8], (OwnedStacks, Vec<Move>)> {
|
||||
fn parse_usize(input: &[u8]) -> IResult<&[u8], usize> {
|
||||
map(nom::character::complete::u32, |v| v as usize)(input)
|
||||
}
|
||||
let (input, stacks) = parse_stacks(input)?;
|
||||
|
||||
// Consume the double newline
|
||||
let (input, _) = tag("\n\n")(input)?;
|
||||
|
||||
let (input, moves) = many1(terminated(
|
||||
tuple((
|
||||
preceded(tag("move "), parse_usize),
|
||||
preceded(tag(" from "), parse_usize),
|
||||
preceded(tag(" to "), parse_usize),
|
||||
)),
|
||||
newline,
|
||||
))(input)?;
|
||||
|
||||
Ok((input, (stacks, moves)))
|
||||
}
|
||||
|
||||
/// Some magic to get two mutable references into the same slice
|
||||
fn get_both(stacks: &mut [Vec<u8>], from: usize, to: usize) -> (&mut Vec<u8>, &mut Vec<u8>) {
|
||||
match from.cmp(&to) {
|
||||
Ordering::Greater => {
|
||||
let (begin, end) = stacks.split_at_mut(from);
|
||||
(&mut end[0], &mut begin[to])
|
||||
}
|
||||
Ordering::Less => {
|
||||
let (begin, end) = stacks.split_at_mut(to);
|
||||
(&mut begin[from], &mut end[0])
|
||||
}
|
||||
Ordering::Equal => panic!("Tried to stack from and to {from}"),
|
||||
}
|
||||
}
|
||||
|
||||
fn compute_answer(stacks: &mut [Vec<u8>]) -> Result<String> {
|
||||
let mut result = String::with_capacity(stacks.len());
|
||||
|
||||
for stack in stacks {
|
||||
result.push(
|
||||
*stack
|
||||
.last()
|
||||
.ok_or_else(|| anyhow::anyhow!("Encountered empty stack"))? as char,
|
||||
);
|
||||
}
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
|
||||
pub fn part1(input: &[u8]) -> Result<String> {
|
||||
let (mut stacks, moves) = parse_input(input, parse_task)?;
|
||||
|
||||
for (count, from, to) in moves {
|
||||
let (from, to) = get_both(&mut stacks, from - 1, to - 1);
|
||||
|
||||
let drain_start = from.len() - count;
|
||||
|
||||
to.extend(from.drain(drain_start..).rev());
|
||||
}
|
||||
|
||||
compute_answer(&mut stacks)
|
||||
}
|
||||
|
||||
pub fn part2(input: &[u8]) -> Result<String> {
|
||||
let (mut stacks, moves) = parse_input(input, parse_task)?;
|
||||
|
||||
for (count, from, to) in moves {
|
||||
let (from, to) = get_both(&mut stacks, from - 1, to - 1);
|
||||
|
||||
let drain_start = from.len() - count;
|
||||
|
||||
to.extend(from.drain(drain_start..));
|
||||
}
|
||||
|
||||
compute_answer(&mut stacks)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
const SAMPLE: &[u8] = include_bytes!("samples/05.txt");
|
||||
|
||||
#[test]
|
||||
fn sample_part1() {
|
||||
assert_eq!(part1(SAMPLE).unwrap(), "CMZ");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sample_part2() {
|
||||
assert_eq!(part2(SAMPLE).unwrap(), "MCD");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,68 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
fn find_first(input: &[u8], unique: usize) -> Result<usize> {
|
||||
let mut seen = [false; 256];
|
||||
|
||||
let mut tail_it = input.iter();
|
||||
|
||||
let mut first = 0;
|
||||
|
||||
// Loop invariant: input[first..last] contains only unique characters
|
||||
for (last, &c) in input.iter().enumerate() {
|
||||
if seen[c as usize] {
|
||||
first += (&mut tail_it)
|
||||
.take_while(|&&b| b != c)
|
||||
.map(|&b| seen[b as usize] = false)
|
||||
.count()
|
||||
+ 1; // +1 because take_while doesn't return the first element that didn't satisfy the condition, while we do need to count it
|
||||
} else {
|
||||
// New unique character found: input[first..=last] contains unique characters
|
||||
if last - first + 1 == unique {
|
||||
return Ok(last + 1);
|
||||
}
|
||||
|
||||
seen[c as usize] = true;
|
||||
}
|
||||
}
|
||||
|
||||
anyhow::bail!("Did not find unique sequence of length {unique}");
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
pub fn part1(input: &[u8]) -> Result<String> {
|
||||
Ok(find_first(input, 4)?.to_string())
|
||||
}
|
||||
|
||||
pub fn part2(input: &[u8]) -> Result<String> {
|
||||
Ok(find_first(input, 14)?.to_string())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
const SAMPLES: &[&[u8]] = &[
|
||||
b"mjqjpqmgbljsphdztnvjfqwrcgsmlb",
|
||||
b"bvwbjplbgvbhsrlpgdmjqwftvncz",
|
||||
b"nppdvjthqldpwncqszvftbrmjlhg",
|
||||
b"nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg",
|
||||
b"zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw",
|
||||
];
|
||||
|
||||
#[test]
|
||||
fn sample_part1() {
|
||||
const CORRECT: &[usize] = &[7, 5, 6, 10, 11];
|
||||
|
||||
for (&sample, &correct) in SAMPLES.iter().zip(CORRECT) {
|
||||
assert_eq!(find_first(sample, 4).unwrap(), correct);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sample_part2() {
|
||||
const CORRECT: &[usize] = &[19, 23, 23, 29, 26];
|
||||
|
||||
for (&sample, &correct) in SAMPLES.iter().zip(CORRECT) {
|
||||
assert_eq!(find_first(sample, 14).unwrap(), correct);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,124 @@
|
||||
use anyhow::Context;
|
||||
use anyhow::Result;
|
||||
use nom::branch::alt;
|
||||
use nom::bytes::complete::tag;
|
||||
use nom::bytes::complete::take_until;
|
||||
use nom::character::complete::newline;
|
||||
use nom::combinator::map;
|
||||
use nom::combinator::opt;
|
||||
use nom::multi::fold_many0;
|
||||
use nom::sequence::delimited;
|
||||
use nom::sequence::preceded;
|
||||
use nom::sequence::terminated;
|
||||
use nom::sequence::tuple;
|
||||
use nom::IResult;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
use crate::common::parse_input;
|
||||
|
||||
fn parse_dir<'a>(
|
||||
input: &'a [u8],
|
||||
dirs: &mut Vec<u32>,
|
||||
dir_stack: &mut Vec<&'a [u8]>,
|
||||
) -> IResult<&'a [u8], u32> {
|
||||
use nom::character::complete::u32;
|
||||
|
||||
enum Entry<'a> {
|
||||
File(u32),
|
||||
Dir(&'a [u8]),
|
||||
}
|
||||
let initial_len = dir_stack.len();
|
||||
|
||||
let (mut input, mut size) = preceded(
|
||||
tag("$ ls\n"),
|
||||
fold_many0(
|
||||
// Map many newline-terminated entries
|
||||
terminated(
|
||||
// of either
|
||||
alt((
|
||||
// A size followed by a name
|
||||
map(terminated(u32, take_until("\n")), Entry::File),
|
||||
// Or the word "dir" followed by a name
|
||||
map(preceded(tag("dir "), take_until("\n")), Entry::Dir),
|
||||
)),
|
||||
newline,
|
||||
),
|
||||
|| 0u32,
|
||||
|files_sum, entry| match entry {
|
||||
Entry::File(size) => files_sum + size,
|
||||
Entry::Dir(name) => {
|
||||
dir_stack.push(name);
|
||||
files_sum
|
||||
}
|
||||
},
|
||||
),
|
||||
)(input)?;
|
||||
|
||||
for i in initial_len..dir_stack.len() {
|
||||
let (new_input, content_size) = delimited(
|
||||
tuple((tag("$ cd "), tag(dir_stack[i]), newline)),
|
||||
|input| parse_dir(input, dirs, dir_stack),
|
||||
// Optional cd'ing out because the last directory is never exited.
|
||||
opt(tag("$ cd ..\n")),
|
||||
)(input)?;
|
||||
|
||||
input = new_input;
|
||||
size += content_size;
|
||||
}
|
||||
|
||||
dirs.push(size);
|
||||
dir_stack.truncate(initial_len);
|
||||
|
||||
Ok((input, size))
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
fn parse_program(input: &[u8]) -> IResult<&[u8], (u32, Vec<u32>)> {
|
||||
let mut dirs = Vec::new();
|
||||
let mut dirstack = Vec::new();
|
||||
let (input, size) = preceded(tag("$ cd /\n"), |input| {
|
||||
parse_dir(input, &mut dirs, &mut dirstack)
|
||||
})(input)?;
|
||||
|
||||
Ok((input, (size, dirs)))
|
||||
}
|
||||
|
||||
pub fn part1(input: &[u8]) -> Result<String> {
|
||||
let (_, sizes) = parse_input(input, parse_program)?;
|
||||
|
||||
let searched_size: u32 = sizes.into_iter().filter(|&size| size <= 100000).sum();
|
||||
|
||||
Ok(searched_size.to_string())
|
||||
}
|
||||
|
||||
pub fn part2(input: &[u8]) -> Result<String> {
|
||||
const TARGET: u32 = 30000000;
|
||||
const TOTAL: u32 = 70000000;
|
||||
|
||||
let (used, sizes) = parse_input(input, parse_program)?;
|
||||
|
||||
let required = TARGET - (TOTAL - used);
|
||||
|
||||
let min = sizes
|
||||
.into_iter()
|
||||
.filter(|&size| size >= required)
|
||||
.min()
|
||||
.context("Did not find dir large enough to delete")?;
|
||||
|
||||
Ok(min.to_string())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
const SAMPLE: &[u8] = include_bytes!("samples/07.txt");
|
||||
|
||||
#[test]
|
||||
fn sample_part1() {
|
||||
assert_eq!(part1(SAMPLE).unwrap(), "95437");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sample_part2() {
|
||||
assert_eq!(part2(SAMPLE).unwrap(), "24933642");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,163 @@
|
||||
use std::cmp::Ordering;
|
||||
|
||||
use anyhow::Context;
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
#[inline]
|
||||
fn stripe<'a>(
|
||||
values: impl IntoIterator<Item = &'a u8>,
|
||||
visible: impl IntoIterator<Item = &'a mut bool>,
|
||||
) {
|
||||
let mut max = 0;
|
||||
|
||||
for (&val, visible) in values.into_iter().zip(visible) {
|
||||
if val > max {
|
||||
max = val;
|
||||
*visible = true;
|
||||
|
||||
if val == b'9' {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
pub fn part1(input: &[u8]) -> Result<String> {
|
||||
let width = input
|
||||
.iter()
|
||||
.position(|&b| b == b'\n')
|
||||
.context("Single row field")?;
|
||||
let height = input.len() / (width + 1); // Include newlines
|
||||
|
||||
let mut visible = vec![false; width * height];
|
||||
|
||||
// Horizontal striping
|
||||
for (y, row) in input.chunks_exact(width + 1).enumerate() {
|
||||
// First, left to right
|
||||
stripe(&row[..width], &mut visible[(y * width)..]);
|
||||
|
||||
// Then right to left
|
||||
stripe(
|
||||
row[..width].iter().rev(),
|
||||
visible[(y * width)..(y * width + width)].iter_mut().rev(),
|
||||
);
|
||||
}
|
||||
|
||||
// Vertical striping
|
||||
for x in 0..width {
|
||||
// Top to bottom
|
||||
stripe(
|
||||
input[x..].iter().step_by(width + 1),
|
||||
visible[x..].iter_mut().step_by(width),
|
||||
);
|
||||
|
||||
// Bottom to top
|
||||
stripe(
|
||||
input[x..].iter().step_by(width + 1).rev(),
|
||||
visible[x..].iter_mut().step_by(width).rev(),
|
||||
)
|
||||
}
|
||||
|
||||
Ok(visible.into_iter().filter(|&b| b).count().to_string())
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn scenery<'a>(
|
||||
values: impl IntoIterator<Item = &'a u8>,
|
||||
visible: impl IntoIterator<Item = &'a mut usize>,
|
||||
tree_stack: &mut Vec<(usize, u8)>,
|
||||
) {
|
||||
tree_stack.clear();
|
||||
|
||||
for (i, (&val, score)) in values.into_iter().zip(visible).enumerate() {
|
||||
scenery_helper(i, tree_stack, val, score);
|
||||
}
|
||||
}
|
||||
|
||||
fn scenery_helper(i: usize, tree_stack: &mut Vec<(usize, u8)>, val: u8, score: &mut usize) {
|
||||
if i > 0 {
|
||||
let mut first = 0;
|
||||
|
||||
while let Some((pos, other)) = tree_stack.pop() {
|
||||
match other.cmp(&val) {
|
||||
Ordering::Less => (),
|
||||
Ordering::Equal => {
|
||||
first = pos;
|
||||
break;
|
||||
}
|
||||
Ordering::Greater => {
|
||||
tree_stack.push((pos, other));
|
||||
first = pos;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tree_stack.push((i, val));
|
||||
|
||||
*score *= i - first;
|
||||
} else {
|
||||
*score = 0;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn part2(input: &[u8]) -> Result<String> {
|
||||
let width = input
|
||||
.iter()
|
||||
.position(|&b| b == b'\n')
|
||||
.context("Single row field")?;
|
||||
let height = input.len() / (width + 1); // Include newlines
|
||||
|
||||
let mut score = vec![1; width * height];
|
||||
|
||||
let mut tree_stack = Vec::with_capacity(10);
|
||||
|
||||
// Horizontal striping
|
||||
for (y, row) in input.chunks_exact(width + 1).enumerate() {
|
||||
// First, left to right
|
||||
scenery(&row[..width], &mut score[(y * width)..], &mut tree_stack);
|
||||
|
||||
// Then right to left
|
||||
scenery(
|
||||
row[..width].iter().rev(),
|
||||
score[(y * width)..(y * width + width)].iter_mut().rev(),
|
||||
&mut tree_stack,
|
||||
);
|
||||
}
|
||||
|
||||
// Vertical striping
|
||||
for x in 0..width {
|
||||
// Top to bottom
|
||||
scenery(
|
||||
input[x..].iter().step_by(width + 1),
|
||||
score[x..].iter_mut().step_by(width),
|
||||
&mut tree_stack,
|
||||
);
|
||||
|
||||
// Bottom to top
|
||||
scenery(
|
||||
input[x..].iter().step_by(width + 1).rev(),
|
||||
score[x..].iter_mut().step_by(width).rev(),
|
||||
&mut tree_stack,
|
||||
)
|
||||
}
|
||||
|
||||
Ok(score.into_iter().max().context("empty field")?.to_string())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
const SAMPLE: &[u8] = include_bytes!("samples/08.txt");
|
||||
|
||||
#[test]
|
||||
fn sample_part1() {
|
||||
assert_eq!(part1(SAMPLE).unwrap(), "21");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sample_part2() {
|
||||
assert_eq!(part2(SAMPLE).unwrap(), "8");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use anyhow::Result;
|
||||
|
||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
||||
todo!()
|
||||
anyhow::bail!("not implemented")
|
||||
}
|
||||
|
||||
9
2022/src/samples/05.txt
Normal file
9
2022/src/samples/05.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
[D]
|
||||
[N] [C]
|
||||
[Z] [M] [P]
|
||||
1 2 3
|
||||
|
||||
move 1 from 2 to 1
|
||||
move 3 from 1 to 3
|
||||
move 2 from 2 to 1
|
||||
move 1 from 1 to 2
|
||||
23
2022/src/samples/07.txt
Normal file
23
2022/src/samples/07.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
$ cd /
|
||||
$ ls
|
||||
dir a
|
||||
14848514 b.txt
|
||||
8504156 c.dat
|
||||
dir d
|
||||
$ cd a
|
||||
$ ls
|
||||
dir e
|
||||
29116 f
|
||||
2557 g
|
||||
62596 h.lst
|
||||
$ cd e
|
||||
$ ls
|
||||
584 i
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd d
|
||||
$ ls
|
||||
4060174 j
|
||||
8033020 d.log
|
||||
5626152 d.ext
|
||||
7214296 k
|
||||
5
2022/src/samples/08.txt
Normal file
5
2022/src/samples/08.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
30373
|
||||
25512
|
||||
65332
|
||||
33549
|
||||
35390
|
||||
Reference in New Issue
Block a user