add until day05-1
This commit is contained in:
1 parent
89c728010c
commit
c7a5adc00a
26 files changed
+2326
No files matched your search
@@ -0,0 +1 @@
|
||||
**/target
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day01"
|
||||
version = "0.1.0"
|
||||
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day01"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1 @@
|
||||
()())
|
||||
@@ -0,0 +1 @@
|
||||
()(((()))(()()()((((()(((())(()(()((((((()(()(((())))((()(((()))((())(()((()()()()(((())(((((((())))()()(()(()(())(((((()()()((())(((((()()))))()(())(((())(())((((((())())))(()())))()))))()())()())((()()((()()()()(()((((((((()()())((()()(((((()(((())((())(()))()((((()((((((((())()((()())(())((()))())((((()())(((((((((((()()(((((()(()))())(((()(()))())((()(()())())())(()(((())(())())()()(()(()((()))((()))))((((()(((()))))((((()(()(()())())()(((()((((())((((()(((()()(())()()()())((()((((((()((()()))()((()))()(()()((())))(((()(((()))((()((()(()))(((()()(()(()()()))))()()(((()(((())())))))((()(((())()(()(())((()())))((((())))(()(()(()())()((()())))(((()((()(())()()((()((())(()()((())(())()))()))((()(())()))())(((((((()(()()(()(())())))))))(()((((((())((((())((())())(()()))))()(())(()())()())((())(()))))(()))(()((()))()(()((((((()()()()((((((((()(()(())((()()(()()))(())()())()((())))()))()())(((()))(())()(())()))()((()((()(()()())(())()()()((())())))((()()(()()((()(())()()())(((()(()()))))(())))(()(()())()))()()))))))()))))((((((())))())))(()(())())(()())))))(()))()))))))()((()))))()))))(()(()((()())())(()()))))(((())()))())())())(((()(()()))(())()(())(())((((((()()))))((()(()))))))(()))())(((()()(()))()())()()()())))))))))))))(())(()))(()))((()(())(()())(())())(()())(())()()(()())))()()()))(())())()))())())(())((())))))))(())))(())))))()))))((())(()(((()))))(()))()((()(())))(()())(((((()))()())()()))))()))))()))())(()(()()()))()))))))((()))))))))))()((()))((()(())((())()()(()()))()(()))))()()(()))()))(((())))(())()((())(())(()())()())())))))))())))()((())))()))(()))()()))(((((((()))())(()()))(()()(()))()(()((()())()))))))(((()()()())))(())()))()())(()()))()()))))))))(())))()))()()))))))()))()())))()(())(())))))()(())()()(()()))))())((()))))()))))(()(((((()))))))))())))())()(())()()))))(())))())()()())()()())()(()))))()))()))))))))())))((()))()))()))())))()())()()())))())))(()((())()((()))())))))())()(())((())))))))))))())()())(())())())(()))(()))()))())(()(())())()())()()(()))))(()(())))))))(())))())(())))))))())()()(())())())))(())))))()))()(()())()(()))())())))))()()(()))()))))())))))))))()))))()))))))())()())()()))))()())))())))))))))))()()))))()()(((()))()()(())()))))((()))))(()))(())())))(())()))))))(()))()))))(())())))))()))(()())))))))))))))())))))))))()((()())(()())))))))((()))))(())(())))()(()())())))())())(()()()())))()))))))())))))())()()())))))))))))()()(()))))()())()))((()())(()))))()(()))))))))))()())())(((())(()))))())()))()))()))))))()))))))(()))))()))))()(())))(())))(()))())()()(()()))()))(()()))))))))()))(()))())(()()(()(()())()()))()))))))))(())))))((()()(()))())())))))()))())(()())()()))())))()(()()()()))((())())))())()(()()))()))))))))(()))(())))()))))(()(()())(()))))()())())()))()()))())))))))))))())()))))))()))))))))())))))()))))())(()())))(())()))())())))))()()(()()())(()())))()()))(((()))(()()()))))()))))()))))((())))()((((((()()))))))())))))))))))(((()))))))))))))(())())))))())(()))))))(()))((()))())))()(()((()))()))()))))))))))())()))()(()()))))())))())(())()(()))()))())(()))()))))(()()))()()(())))))()))(())(()(()()))(()()())))))(((()))))))()))))))))))))(())(()))))()())())()()((()()))())))))(()))))())))))))()()()))))))))())))()(((()()))(())))))(((())())))))((()))()(()))(()))))(()())))(()))())))))()))))(())(())))()((()))(())())))()()))()))))))))()))(()()()(()()()(()))())(())()())(((()))(())))))))))(((()())))()()))))))))()(())(()))()((((())(())(()())))()))(((())()()()))((()))(()))())())))())))(()))())()())())(()(())())()()()(())))())(())))(())))(())()))()))(()((()))))))))())(()))))))())(()()))()()))()(()(()())))()()(()((()((((((()))(())))()()()))())()))((()()(()))())((()(()(()))(()()))))()())))()))()())))))))()()((()())(())))()))(()))(())(()))())(()(())))()()))))))(((()(((()()))()(()(())())((()()))()))()))()))()(()()()(()))((()())()(())))()()))(((())()()())(())()((()()()()(()(())(()()))()(((((()())))((())))))(()()()))))(((()(())))()))((()((()(())()(()((())))((()())()(()))(((()())()()(()))(())(((()((()())()((())()())(((()()))((()((())(()))(()())(()()()))((()))(())(()((()()())((()))(())))(())(())(())))(()())))(((((()(()(((((()())((((()(()())(())(()()(((())((()(((()()(((()()((((((())))())(()((((((()(()))()))()()((()((()))))()(()()(()((()()))))))(((((()(((((())()()()(())())))))))()))((()()(())))(())(()()()())))))(()((((())))))))()()(((()(()(()(()(()())()()()(((((((((()()())()(()))((()()()()()(((((((()())()((())()))((((((()(()(()(()())(((()(((((((()(((())(((((((((())(())())()))((()(()))(((()()())(())(()(()()(((()(())()))())))(())((((((())(()()())()()(((()(((())(()(((())(((((((()(((((((((()))(())(()(()(()))))((()))()(())())())((()(()((()()))((()()((()(())(())(()((())(((())(((()()()((((((()()(())((((())()))))(())((()(()((())))(((((()(()()())())((())())))((())((()((()()((((((())(((()()(()())())(()(()))(()(()))())())()(((((((()(((()(())()()((())((()(()()((()(()()(((((((((((())((())((((((())((()((((()(()((((()(((((((())()((()))))())()((()((((()(()(((()((()())))(())())(((()(((())((((((()(((((((((Line truncated
|
||||
@@ -0,0 +1,32 @@
|
||||
#[cfg(debug_assertions)]
|
||||
const FILENAME: &str = "example.txt";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const FILENAME: &str = "input.txt";
|
||||
|
||||
fn main() {
|
||||
let data = std::io::read_to_string(std::fs::File::open(FILENAME).unwrap()).unwrap();
|
||||
let s = data.trim();
|
||||
|
||||
part_1(s);
|
||||
part_2(s);
|
||||
}
|
||||
|
||||
fn part_1(data: &str) {
|
||||
let result: i64 = data.chars().map(|c| if c == '(' { 1 } else { -1 }).sum();
|
||||
println!("{result}");
|
||||
}
|
||||
|
||||
fn part_2(data: &str) {
|
||||
let mut current_floor: i64 = 0;
|
||||
for (i, c) in data.chars().enumerate() {
|
||||
if c == '(' {
|
||||
current_floor += 1;
|
||||
} else {
|
||||
current_floor -= 1;
|
||||
}
|
||||
if current_floor == -1 {
|
||||
println!("{}", i + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
+25
@@ -0,0 +1,25 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day02"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"itertools",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "either"
|
||||
version = "1.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
@@ -0,0 +1,7 @@
|
||||
[package]
|
||||
name = "day02"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
itertools = "0.14.0"
|
||||
@@ -0,0 +1,2 @@
|
||||
2x3x4
|
||||
1x1x10
|
||||
+1000
@@ -0,0 +1,1000 @@
|
||||
20x3x11
|
||||
15x27x5
|
||||
6x29x7
|
||||
30x15x9
|
||||
19x29x21
|
||||
10x4x15
|
||||
1x26x4
|
||||
1x5x18
|
||||
10x15x23
|
||||
10x14x20
|
||||
3x5x18
|
||||
29x23x30
|
||||
7x4x10
|
||||
22x24x29
|
||||
30x1x2
|
||||
19x2x5
|
||||
11x9x22
|
||||
23x15x10
|
||||
11x11x10
|
||||
30x28x5
|
||||
22x5x4
|
||||
6x26x20
|
||||
16x12x30
|
||||
10x20x5
|
||||
25x14x24
|
||||
16x17x22
|
||||
11x28x26
|
||||
1x11x10
|
||||
1x24x15
|
||||
13x17x21
|
||||
30x3x13
|
||||
20x25x17
|
||||
22x12x5
|
||||
22x20x24
|
||||
9x2x14
|
||||
6x18x8
|
||||
27x28x24
|
||||
11x17x1
|
||||
1x4x12
|
||||
5x20x13
|
||||
24x23x23
|
||||
22x1x25
|
||||
18x19x5
|
||||
5x23x13
|
||||
8x16x4
|
||||
20x21x9
|
||||
1x7x11
|
||||
8x30x17
|
||||
3x30x9
|
||||
6x16x18
|
||||
22x25x27
|
||||
9x20x26
|
||||
16x21x23
|
||||
5x24x17
|
||||
15x17x15
|
||||
26x15x10
|
||||
22x16x3
|
||||
20x24x24
|
||||
8x18x10
|
||||
23x19x16
|
||||
1x21x24
|
||||
23x23x9
|
||||
14x20x6
|
||||
25x5x5
|
||||
16x3x1
|
||||
29x29x20
|
||||
11x4x26
|
||||
10x23x24
|
||||
29x25x16
|
||||
27x27x22
|
||||
9x7x22
|
||||
6x21x18
|
||||
25x11x19
|
||||
14x13x3
|
||||
15x28x17
|
||||
14x3x12
|
||||
29x8x19
|
||||
30x14x20
|
||||
20x23x4
|
||||
8x16x5
|
||||
4x11x18
|
||||
20x8x24
|
||||
21x13x21
|
||||
14x26x29
|
||||
27x4x17
|
||||
27x4x25
|
||||
5x28x6
|
||||
23x24x11
|
||||
29x22x5
|
||||
30x20x6
|
||||
23x2x10
|
||||
11x4x7
|
||||
27x23x6
|
||||
10x20x19
|
||||
8x20x22
|
||||
5x29x22
|
||||
16x13x2
|
||||
2x11x14
|
||||
6x12x4
|
||||
3x13x6
|
||||
16x5x18
|
||||
25x3x28
|
||||
21x1x5
|
||||
20x16x19
|
||||
28x30x27
|
||||
26x7x18
|
||||
25x27x24
|
||||
11x19x7
|
||||
21x19x17
|
||||
2x12x27
|
||||
20x5x14
|
||||
8x5x8
|
||||
6x24x8
|
||||
7x28x20
|
||||
3x20x28
|
||||
5x20x30
|
||||
13x29x1
|
||||
26x29x5
|
||||
19x28x25
|
||||
5x19x11
|
||||
11x20x22
|
||||
4x23x1
|
||||
19x25x12
|
||||
3x10x6
|
||||
3x14x10
|
||||
28x16x12
|
||||
23x12x2
|
||||
23x12x19
|
||||
20x28x10
|
||||
9x10x25
|
||||
16x21x16
|
||||
1x18x20
|
||||
9x4x26
|
||||
3x25x8
|
||||
17x16x28
|
||||
9x28x16
|
||||
27x3x12
|
||||
17x24x12
|
||||
13x21x10
|
||||
7x17x13
|
||||
6x10x9
|
||||
7x29x25
|
||||
11x19x30
|
||||
1x24x5
|
||||
20x16x23
|
||||
24x28x21
|
||||
6x29x19
|
||||
25x2x19
|
||||
12x5x26
|
||||
25x29x12
|
||||
16x28x22
|
||||
26x26x15
|
||||
9x13x5
|
||||
10x29x7
|
||||
1x24x16
|
||||
22x2x2
|
||||
6x16x13
|
||||
3x12x28
|
||||
4x12x13
|
||||
14x27x21
|
||||
14x23x26
|
||||
7x5x18
|
||||
8x30x27
|
||||
15x9x18
|
||||
26x16x5
|
||||
3x29x17
|
||||
19x7x18
|
||||
16x18x1
|
||||
26x15x30
|
||||
24x30x21
|
||||
13x20x7
|
||||
4x12x10
|
||||
27x20x11
|
||||
28x29x21
|
||||
20x14x30
|
||||
28x12x3
|
||||
19x1x8
|
||||
4x8x6
|
||||
21x14x2
|
||||
27x19x21
|
||||
17x24x14
|
||||
15x18x11
|
||||
18x7x26
|
||||
25x28x29
|
||||
27x26x9
|
||||
18x12x17
|
||||
24x28x25
|
||||
13x24x14
|
||||
26x9x28
|
||||
9x3x30
|
||||
9x2x9
|
||||
8x1x29
|
||||
18x30x10
|
||||
18x14x5
|
||||
26x8x30
|
||||
12x1x1
|
||||
30x5x28
|
||||
26x17x21
|
||||
10x10x10
|
||||
20x7x27
|
||||
13x17x6
|
||||
21x13x17
|
||||
2x16x8
|
||||
7x9x9
|
||||
15x26x4
|
||||
11x28x25
|
||||
10x6x19
|
||||
21x6x29
|
||||
15x5x6
|
||||
28x9x16
|
||||
14x3x10
|
||||
12x29x5
|
||||
22x19x19
|
||||
25x15x22
|
||||
30x6x28
|
||||
11x23x13
|
||||
20x25x14
|
||||
26x1x13
|
||||
6x14x15
|
||||
16x25x17
|
||||
28x4x13
|
||||
10x24x25
|
||||
4x13x10
|
||||
9x15x16
|
||||
15x24x6
|
||||
22x9x19
|
||||
11x11x8
|
||||
4x19x12
|
||||
24x5x4
|
||||
27x12x13
|
||||
7x27x16
|
||||
2x6x9
|
||||
29x27x15
|
||||
18x26x23
|
||||
19x16x15
|
||||
14x5x25
|
||||
9x16x30
|
||||
4x6x4
|
||||
13x10x10
|
||||
1x8x29
|
||||
23x5x17
|
||||
19x20x20
|
||||
11x27x24
|
||||
27x15x5
|
||||
15x11x12
|
||||
21x11x3
|
||||
1x13x22
|
||||
17x8x8
|
||||
13x14x14
|
||||
17x22x7
|
||||
9x5x8
|
||||
2x6x3
|
||||
25x9x15
|
||||
11x8x13
|
||||
9x25x12
|
||||
3x16x12
|
||||
12x16x8
|
||||
16x24x17
|
||||
4x6x26
|
||||
22x29x11
|
||||
14x17x19
|
||||
28x2x27
|
||||
24x22x19
|
||||
22x20x30
|
||||
23x28x4
|
||||
16x12x14
|
||||
22x24x22
|
||||
29x1x28
|
||||
26x29x16
|
||||
3x25x30
|
||||
27x3x13
|
||||
22x24x26
|
||||
25x3x2
|
||||
7x24x2
|
||||
10x5x3
|
||||
28x8x29
|
||||
25x6x4
|
||||
12x17x14
|
||||
24x3x5
|
||||
23x27x7
|
||||
26x23x30
|
||||
11x10x19
|
||||
23x7x11
|
||||
26x14x15
|
||||
14x3x25
|
||||
12x24x14
|
||||
2x14x12
|
||||
9x12x16
|
||||
9x2x28
|
||||
3x8x2
|
||||
22x6x9
|
||||
2x30x2
|
||||
25x1x9
|
||||
20x11x2
|
||||
14x11x12
|
||||
7x14x12
|
||||
24x8x26
|
||||
13x21x23
|
||||
18x17x23
|
||||
13x6x17
|
||||
20x20x19
|
||||
13x17x29
|
||||
7x24x24
|
||||
23x8x6
|
||||
19x10x28
|
||||
3x8x21
|
||||
15x20x18
|
||||
11x27x1
|
||||
11x24x28
|
||||
13x20x11
|
||||
18x19x22
|
||||
27x22x12
|
||||
28x3x2
|
||||
13x4x29
|
||||
26x5x6
|
||||
14x29x25
|
||||
7x4x7
|
||||
5x17x7
|
||||
2x8x1
|
||||
22x30x24
|
||||
22x21x28
|
||||
1x28x13
|
||||
11x20x4
|
||||
25x29x19
|
||||
9x23x4
|
||||
30x6x11
|
||||
25x18x10
|
||||
28x10x24
|
||||
3x5x20
|
||||
19x28x10
|
||||
27x19x2
|
||||
26x20x4
|
||||
19x21x6
|
||||
2x12x30
|
||||
8x26x27
|
||||
11x27x10
|
||||
14x13x17
|
||||
4x3x21
|
||||
2x20x21
|
||||
22x30x3
|
||||
2x23x2
|
||||
3x16x12
|
||||
22x28x22
|
||||
3x23x29
|
||||
8x25x15
|
||||
9x30x4
|
||||
10x11x1
|
||||
24x8x20
|
||||
10x7x27
|
||||
7x22x4
|
||||
27x13x17
|
||||
5x28x5
|
||||
30x15x13
|
||||
10x8x17
|
||||
8x21x5
|
||||
8x17x26
|
||||
25x16x4
|
||||
9x7x25
|
||||
13x11x20
|
||||
6x30x9
|
||||
15x14x12
|
||||
30x1x23
|
||||
5x20x24
|
||||
22x7x6
|
||||
26x11x23
|
||||
29x7x5
|
||||
13x24x28
|
||||
22x20x10
|
||||
18x3x1
|
||||
15x19x23
|
||||
28x28x20
|
||||
7x26x2
|
||||
9x12x20
|
||||
15x4x6
|
||||
1x17x21
|
||||
3x22x17
|
||||
9x4x20
|
||||
25x19x5
|
||||
9x11x22
|
||||
14x1x17
|
||||
14x5x16
|
||||
30x5x18
|
||||
19x6x12
|
||||
28x16x22
|
||||
13x4x25
|
||||
29x23x18
|
||||
1x27x3
|
||||
12x14x4
|
||||
10x25x19
|
||||
15x19x30
|
||||
11x30x4
|
||||
11x22x26
|
||||
13x25x2
|
||||
17x13x27
|
||||
11x30x24
|
||||
15x1x14
|
||||
17x18x4
|
||||
26x11x3
|
||||
16x22x28
|
||||
13x20x9
|
||||
1x18x3
|
||||
25x11x12
|
||||
20x21x1
|
||||
22x27x4
|
||||
8x28x23
|
||||
7x13x27
|
||||
17x9x26
|
||||
27x27x20
|
||||
11x20x12
|
||||
26x21x11
|
||||
29x14x12
|
||||
27x25x1
|
||||
28x29x25
|
||||
21x23x28
|
||||
5x18x18
|
||||
19x5x4
|
||||
7x6x30
|
||||
27x8x11
|
||||
12x24x12
|
||||
16x25x22
|
||||
26x11x29
|
||||
25x22x17
|
||||
15x23x23
|
||||
17x9x6
|
||||
30x10x16
|
||||
21x3x5
|
||||
18x27x2
|
||||
28x21x14
|
||||
16x18x17
|
||||
4x18x2
|
||||
9x1x14
|
||||
9x1x9
|
||||
5x27x12
|
||||
8x16x30
|
||||
3x19x19
|
||||
16x26x24
|
||||
1x6x9
|
||||
15x14x3
|
||||
11x7x19
|
||||
8x19x3
|
||||
17x26x26
|
||||
6x18x11
|
||||
19x12x4
|
||||
29x20x16
|
||||
20x17x23
|
||||
6x6x5
|
||||
20x30x19
|
||||
18x25x18
|
||||
2x26x2
|
||||
3x1x1
|
||||
14x25x18
|
||||
3x1x6
|
||||
11x14x18
|
||||
17x23x27
|
||||
25x29x9
|
||||
6x25x20
|
||||
20x10x9
|
||||
17x5x18
|
||||
29x14x8
|
||||
14x25x26
|
||||
10x15x29
|
||||
23x19x11
|
||||
22x2x2
|
||||
4x5x5
|
||||
13x23x25
|
||||
19x13x19
|
||||
20x18x6
|
||||
30x7x28
|
||||
26x18x17
|
||||
29x18x10
|
||||
30x29x1
|
||||
12x26x24
|
||||
18x17x26
|
||||
29x28x15
|
||||
3x12x20
|
||||
24x10x8
|
||||
30x15x6
|
||||
28x23x15
|
||||
14x28x11
|
||||
10x27x19
|
||||
14x8x21
|
||||
24x1x23
|
||||
1x3x27
|
||||
6x15x6
|
||||
8x25x26
|
||||
13x10x25
|
||||
6x9x8
|
||||
10x29x29
|
||||
26x23x5
|
||||
14x24x1
|
||||
25x6x22
|
||||
17x11x18
|
||||
1x27x26
|
||||
18x25x23
|
||||
20x15x6
|
||||
2x21x28
|
||||
2x10x13
|
||||
12x25x14
|
||||
2x14x23
|
||||
30x5x23
|
||||
29x19x21
|
||||
29x10x25
|
||||
14x22x16
|
||||
17x11x26
|
||||
12x17x30
|
||||
8x17x7
|
||||
20x25x28
|
||||
20x11x30
|
||||
15x1x12
|
||||
13x3x24
|
||||
16x23x23
|
||||
27x3x3
|
||||
26x3x27
|
||||
18x5x12
|
||||
12x26x7
|
||||
19x27x12
|
||||
20x10x28
|
||||
30x12x25
|
||||
3x14x10
|
||||
21x26x1
|
||||
24x26x26
|
||||
7x21x30
|
||||
3x29x12
|
||||
29x28x5
|
||||
5x20x7
|
||||
27x11x2
|
||||
15x20x4
|
||||
16x15x15
|
||||
19x13x7
|
||||
7x17x15
|
||||
27x24x15
|
||||
9x17x28
|
||||
20x21x14
|
||||
14x29x29
|
||||
23x26x13
|
||||
27x23x21
|
||||
18x13x6
|
||||
26x16x21
|
||||
18x26x27
|
||||
9x3x12
|
||||
30x18x24
|
||||
12x11x29
|
||||
5x15x1
|
||||
1x16x3
|
||||
14x28x11
|
||||
2x18x1
|
||||
19x18x19
|
||||
18x28x21
|
||||
2x3x14
|
||||
22x16x5
|
||||
28x18x28
|
||||
24x16x18
|
||||
7x4x10
|
||||
19x26x19
|
||||
24x17x7
|
||||
25x9x6
|
||||
25x17x7
|
||||
20x22x20
|
||||
3x3x7
|
||||
23x19x15
|
||||
21x27x21
|
||||
1x23x11
|
||||
9x19x4
|
||||
22x4x18
|
||||
6x15x5
|
||||
15x25x2
|
||||
23x11x20
|
||||
27x16x6
|
||||
27x8x5
|
||||
10x10x19
|
||||
22x14x1
|
||||
7x1x29
|
||||
8x11x17
|
||||
27x9x27
|
||||
28x9x24
|
||||
17x7x3
|
||||
26x23x8
|
||||
7x6x30
|
||||
25x28x2
|
||||
1x30x25
|
||||
3x18x18
|
||||
28x27x15
|
||||
14x14x1
|
||||
10x25x29
|
||||
18x12x9
|
||||
20x28x16
|
||||
26x27x22
|
||||
8x26x1
|
||||
21x2x12
|
||||
25x16x14
|
||||
21x19x5
|
||||
12x9x22
|
||||
16x5x4
|
||||
5x4x16
|
||||
25x29x3
|
||||
4x29x13
|
||||
15x16x29
|
||||
8x11x24
|
||||
30x11x20
|
||||
17x21x14
|
||||
12x24x10
|
||||
10x12x6
|
||||
3x26x30
|
||||
15x14x25
|
||||
20x12x21
|
||||
13x11x16
|
||||
15x13x3
|
||||
5x17x29
|
||||
6x3x23
|
||||
9x26x11
|
||||
30x1x8
|
||||
14x10x30
|
||||
18x30x10
|
||||
13x19x19
|
||||
16x19x17
|
||||
28x7x10
|
||||
28x29x4
|
||||
3x21x10
|
||||
4x28x24
|
||||
7x28x9
|
||||
2x4x9
|
||||
25x27x13
|
||||
6x12x15
|
||||
4x18x20
|
||||
20x1x16
|
||||
5x13x24
|
||||
11x11x10
|
||||
12x9x23
|
||||
1x9x30
|
||||
17x28x24
|
||||
9x5x27
|
||||
21x15x16
|
||||
17x4x14
|
||||
8x14x4
|
||||
13x10x7
|
||||
17x12x14
|
||||
9x19x19
|
||||
2x7x21
|
||||
8x24x23
|
||||
19x5x12
|
||||
11x23x21
|
||||
13x3x1
|
||||
5x27x15
|
||||
12x25x25
|
||||
13x21x16
|
||||
9x17x11
|
||||
1x15x21
|
||||
4x26x17
|
||||
11x5x15
|
||||
23x10x15
|
||||
12x17x21
|
||||
27x15x1
|
||||
4x29x14
|
||||
5x24x25
|
||||
10x10x12
|
||||
18x12x9
|
||||
11x24x23
|
||||
24x23x3
|
||||
28x12x15
|
||||
29x9x14
|
||||
11x25x8
|
||||
5x12x2
|
||||
26x26x29
|
||||
9x21x2
|
||||
8x8x25
|
||||
1x16x30
|
||||
17x29x20
|
||||
9x22x13
|
||||
7x18x16
|
||||
3x3x23
|
||||
26x25x30
|
||||
15x23x24
|
||||
20x23x5
|
||||
20x16x10
|
||||
23x7x8
|
||||
20x18x26
|
||||
8x27x6
|
||||
30x23x23
|
||||
7x7x24
|
||||
21x11x15
|
||||
1x30x25
|
||||
26x27x22
|
||||
30x28x13
|
||||
20x13x13
|
||||
3x1x15
|
||||
16x7x1
|
||||
7x25x15
|
||||
12x7x18
|
||||
16x9x23
|
||||
16x12x18
|
||||
29x5x2
|
||||
17x7x7
|
||||
21x17x5
|
||||
9x9x17
|
||||
26x16x10
|
||||
29x29x23
|
||||
17x26x10
|
||||
5x19x17
|
||||
1x10x1
|
||||
14x21x20
|
||||
13x6x4
|
||||
13x13x3
|
||||
23x4x18
|
||||
4x16x3
|
||||
16x30x11
|
||||
2x11x2
|
||||
15x30x15
|
||||
20x30x22
|
||||
18x12x16
|
||||
23x5x16
|
||||
6x14x15
|
||||
9x4x11
|
||||
30x23x21
|
||||
20x7x12
|
||||
7x18x6
|
||||
15x6x5
|
||||
18x22x19
|
||||
16x10x22
|
||||
26x20x25
|
||||
9x25x25
|
||||
29x21x10
|
||||
9x21x24
|
||||
7x18x21
|
||||
14x3x15
|
||||
18x19x19
|
||||
4x29x17
|
||||
14x10x9
|
||||
2x26x14
|
||||
13x3x24
|
||||
4x4x17
|
||||
6x27x24
|
||||
2x18x3
|
||||
14x25x2
|
||||
30x14x17
|
||||
11x6x14
|
||||
4x10x18
|
||||
15x4x2
|
||||
27x7x10
|
||||
13x24x1
|
||||
7x12x6
|
||||
25x22x26
|
||||
19x2x18
|
||||
23x29x2
|
||||
2x15x4
|
||||
12x6x9
|
||||
16x14x29
|
||||
9x17x3
|
||||
21x9x12
|
||||
23x18x22
|
||||
10x8x4
|
||||
29x2x7
|
||||
19x27x15
|
||||
4x24x27
|
||||
25x20x14
|
||||
8x23x19
|
||||
1x24x19
|
||||
6x20x10
|
||||
15x8x5
|
||||
18x28x5
|
||||
17x23x22
|
||||
9x16x13
|
||||
30x24x4
|
||||
26x3x13
|
||||
12x22x18
|
||||
29x17x29
|
||||
26x4x16
|
||||
15x7x20
|
||||
9x15x30
|
||||
12x7x18
|
||||
28x19x18
|
||||
11x23x23
|
||||
24x20x1
|
||||
20x3x24
|
||||
1x26x1
|
||||
14x10x6
|
||||
5x27x24
|
||||
13x21x12
|
||||
20x20x5
|
||||
6x28x9
|
||||
11x26x11
|
||||
26x29x12
|
||||
21x4x11
|
||||
20x11x17
|
||||
22x27x20
|
||||
19x11x21
|
||||
2x11x11
|
||||
13x5x7
|
||||
12x10x25
|
||||
21x28x1
|
||||
15x30x17
|
||||
28x19x1
|
||||
4x19x12
|
||||
11x4x12
|
||||
4x10x30
|
||||
11x18x5
|
||||
22x20x12
|
||||
3x7x27
|
||||
20x26x4
|
||||
13x27x26
|
||||
23x14x13
|
||||
4x19x7
|
||||
26x27x16
|
||||
20x5x20
|
||||
18x5x8
|
||||
19x21x1
|
||||
22x8x1
|
||||
29x4x1
|
||||
24x10x15
|
||||
24x9x20
|
||||
10x3x8
|
||||
29x30x3
|
||||
2x8x24
|
||||
16x7x18
|
||||
2x11x23
|
||||
23x15x16
|
||||
21x12x6
|
||||
24x28x9
|
||||
6x1x13
|
||||
14x29x20
|
||||
27x24x13
|
||||
16x26x8
|
||||
5x6x17
|
||||
21x8x1
|
||||
28x19x21
|
||||
1x14x16
|
||||
18x2x9
|
||||
29x28x10
|
||||
22x26x27
|
||||
18x26x23
|
||||
22x24x2
|
||||
28x26x1
|
||||
27x29x12
|
||||
30x13x11
|
||||
1x25x5
|
||||
13x30x18
|
||||
3x13x22
|
||||
22x10x11
|
||||
2x7x7
|
||||
18x17x8
|
||||
9x22x26
|
||||
30x18x16
|
||||
10x2x3
|
||||
7x27x13
|
||||
3x20x16
|
||||
9x21x16
|
||||
1x18x15
|
||||
21x30x30
|
||||
4x25x23
|
||||
3x11x7
|
||||
5x6x12
|
||||
27x1x20
|
||||
13x15x24
|
||||
23x29x2
|
||||
13x5x24
|
||||
22x16x15
|
||||
28x14x3
|
||||
29x24x9
|
||||
2x20x4
|
||||
30x10x4
|
||||
23x7x20
|
||||
22x12x21
|
||||
3x19x11
|
||||
4x28x28
|
||||
5x4x7
|
||||
28x12x25
|
||||
2x16x26
|
||||
23x20x7
|
||||
5x21x29
|
||||
9x21x16
|
||||
9x6x10
|
||||
9x6x4
|
||||
24x14x29
|
||||
28x11x6
|
||||
10x22x1
|
||||
21x30x20
|
||||
13x17x8
|
||||
2x25x24
|
||||
19x21x3
|
||||
28x8x14
|
||||
6x29x28
|
||||
27x10x28
|
||||
30x11x12
|
||||
17x2x10
|
||||
14x19x17
|
||||
2x11x4
|
||||
26x1x2
|
||||
13x4x4
|
||||
23x20x18
|
||||
2x17x21
|
||||
28x7x15
|
||||
3x3x27
|
||||
24x17x30
|
||||
28x28x20
|
||||
21x5x29
|
||||
13x12x19
|
||||
24x29x29
|
||||
19x10x6
|
||||
19x12x14
|
||||
21x4x17
|
||||
27x16x1
|
||||
4x17x30
|
||||
23x23x18
|
||||
23x15x27
|
||||
26x2x11
|
||||
12x8x8
|
||||
15x23x26
|
||||
30x17x15
|
||||
17x17x15
|
||||
24x4x30
|
||||
9x9x10
|
||||
14x25x20
|
||||
25x11x19
|
||||
20x7x1
|
||||
9x21x3
|
||||
7x19x9
|
||||
10x6x19
|
||||
26x12x30
|
||||
21x9x20
|
||||
15x11x6
|
||||
30x21x9
|
||||
10x18x17
|
||||
22x9x8
|
||||
8x30x26
|
||||
28x12x27
|
||||
17x17x7
|
||||
11x13x8
|
||||
5x3x21
|
||||
24x1x29
|
||||
1x28x2
|
||||
18x28x10
|
||||
8x29x14
|
||||
26x26x27
|
||||
17x10x25
|
||||
22x30x3
|
||||
27x9x13
|
||||
21x21x4
|
||||
30x29x16
|
||||
22x7x20
|
||||
24x10x2
|
||||
16x29x17
|
||||
28x15x17
|
||||
19x19x22
|
||||
9x8x6
|
||||
26x23x24
|
||||
25x4x27
|
||||
16x12x2
|
||||
11x6x18
|
||||
19x14x8
|
||||
9x29x13
|
||||
23x30x19
|
||||
10x16x1
|
||||
4x21x28
|
||||
23x25x25
|
||||
19x9x16
|
||||
30x11x12
|
||||
24x3x9
|
||||
28x19x4
|
||||
18x12x9
|
||||
7x1x25
|
||||
28x7x1
|
||||
24x3x12
|
||||
30x24x22
|
||||
27x24x26
|
||||
9x30x30
|
||||
29x10x8
|
||||
4x6x18
|
||||
10x1x15
|
||||
10x4x26
|
||||
23x20x16
|
||||
6x3x14
|
||||
30x8x16
|
||||
25x14x20
|
||||
11x9x3
|
||||
15x23x25
|
||||
8x30x22
|
||||
22x19x18
|
||||
25x1x12
|
||||
27x25x7
|
||||
25x23x3
|
||||
13x20x8
|
||||
5x30x7
|
||||
18x19x27
|
||||
20x23x3
|
||||
1x17x21
|
||||
21x21x27
|
||||
13x1x24
|
||||
7x30x20
|
||||
21x9x18
|
||||
23x26x6
|
||||
22x9x29
|
||||
17x6x21
|
||||
28x28x29
|
||||
19x25x26
|
||||
9x27x21
|
||||
5x26x8
|
||||
11x19x1
|
||||
10x1x18
|
||||
29x4x8
|
||||
21x2x22
|
||||
14x12x8
|
||||
@@ -0,0 +1,46 @@
|
||||
use itertools::Itertools;
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
const FILENAME: &str = "example.txt";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const FILENAME: &str = "input.txt";
|
||||
|
||||
fn main() {
|
||||
let data = std::fs::read_to_string(FILENAME).unwrap();
|
||||
|
||||
part_1(&data);
|
||||
part_2(&data);
|
||||
}
|
||||
|
||||
fn part_2(data: &str) {
|
||||
let mut sum = 0;
|
||||
for line in data.lines() {
|
||||
let edges: Vec<_> = line
|
||||
.split('x')
|
||||
.map(|x| x.parse::<usize>().unwrap())
|
||||
.collect();
|
||||
|
||||
let perimeter = edges.iter().sorted().take(2).sum::<usize>() * 2;
|
||||
let volume = edges.iter().product::<usize>();
|
||||
|
||||
sum += perimeter + volume;
|
||||
}
|
||||
println!("{sum}");
|
||||
}
|
||||
|
||||
fn part_1(data: &str) {
|
||||
let mut sum = 0;
|
||||
for line in data.lines() {
|
||||
let sides: Vec<_> = line
|
||||
.split('x')
|
||||
.map(|x| x.parse::<usize>().unwrap())
|
||||
.combinations(2)
|
||||
.map(|x| x[0] * x[1])
|
||||
.collect();
|
||||
|
||||
let smallest = sides.iter().min().copied().unwrap();
|
||||
|
||||
sum += sides.into_iter().sum::<usize>() * 2 + smallest;
|
||||
}
|
||||
println!("{sum}");
|
||||
}
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day03"
|
||||
version = "0.1.0"
|
||||
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day03"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1 @@
|
||||
^v^v^v^v^v
|
||||
@@ -0,0 +1 @@
|
||||
^><^>>>^<^v<v^^vv^><<^<><<vv^<>^<^v>^vv<>v><vv^^<>>^^^v<<vv><<^>^<^v<^>^v><<<v^<v<<<v<<vv<v<^><^>><>v>v^<<v^^<^v<><^>^<<^^^>v>>v^^<v>>^>vv><v>>^>>v^>^v>^<^^v>^>^^v<v>^^<v<>>v^^v><^><^<<>v^<^<^v<v>v^>>>v^v^>^<>^v<^^vv<v>^>^<>^^<vv^<><<v<^<^^>vv<>^>v<^>^v>v^>^v<>^><>><vv<>v^v<><>v^v>>>>v^^>^><^^<v<^><^<v>>^v^v<>v<<<^<<vvvv<<v^vv^>v^^^<^^^<v>>v<^v>>>>>v<^^^^>v<^<><v>>>>><v>>v^vvvv^^<v^<>^v<^v^>v><^>^v<<>>vv^>v>v^^>vv^<^vvv<>><>><><^^^<v<>^<^^^<v><^v>>v>^v<v^vv^<>^^^>v^^^v>>^v^^<^>>^>^<<v>>>^^<>>^vv>v^<^>>>><v<><><^^v<><<<<^^<>>^<vvv^><>v<v<<<<><v<<v>v<v^><vv<v^>^<^>v^^><^v>^^>v<>^v^<>^vv^><v^^vv>vvv>v>^<vv^>>^>>^>><>>>^^^^v<vv>^<>v^^><v^>^<>v<^^v><v<<><^v><>^^^^^v^v>>^^v><<><<vv>^^^^><^>v>><<<^v>v^^>^v^<^^v>v<^<<>>^v<<<v<<>>v<^v^><vv<v^v>v^<v>><v>^v<<<vv^>v<v>>v>>v><v><v^>v^^v>^v^>>>><>^>v>^v^>>>>v^<<vv<^v><<>v<v^<^^<<v<^v^^v^>vv><vv<v^<^>><^^>^<><^^<v<><^v^v^<^^>^<v><^<v>v^<<<^^v<v>^v>>><>^^>vv<<^v^<<<<^^>>>v>v<<<>^^>>>v>^>v>vv<<>^<^><v^>^^<^<v<<v<^>>^v^<vvv><>v^><<v>^^<v^vv^^^<vvv^<^>^>vv>><^v<^<<v<><<><<^^<><><vv>v>^<v>>^<>>^^v>vv^<^^v>><^vv^<<v^^><<>vv<v<><v<><v^^^v^v>^v<^<>v^^>><>^<^<v^<v^v^>v<<<^<<^>>>^^<^^v>v^<v>vvvv>v<>><^>^<<<<v^<v<>v^^^v<>v>^<v<<^^v^^<>^<<v^^<^<v>v>>v>>v^>^<vv<<<<<^<><>v><>>>v^>^v<^<><<v<^v^^<^<><^>^^^>^><>^><<vv>^<>vv<<v^v<<<<<>>>v<vv>^v>^>^>^<^><>v<><>>>^^<v>^<^v>>^<><v^><v^>>>v<v^^vvv^><v<v>v^>vvvv>>><^>v<>^^^>v>>v^<v<>v^>^<v^>^<<^>^>>v<<><<v^^>>v^<v^<^v^>^>v^><<^<v>v^<v>>^^<<v>v><<<^v^<>^<>^>>^<<v>^^<>^v<>v^>>><<v>><v^>^><v^<><v><>><v^<>vv>v^<^^^>v>^^<vv>>^v<><>>><>><^<>>v>v^^>^^<^^>^>>v>vv^^v<^<^v><vv<v<^>><<vvv<<><^>^v>^^^<<>v^<v<v><<v>^^v<<<>^^vv<^>vv>^>^<><<>vv<^>v^vv>^^^v><<^vv>^v<><v^^^^v^>vv^^<^<>^^v^<^vv<v<vv<>v>v^^<>^^>^^>^<><<^v>^><^^vvvv<><>^<v^^>v<>^><>v>><>vv^<<><<>><>v<^>^v>>^^v><<<>>^<^v^<v<<<v^>^^<^<><><^><<<<^<vv><v<<><vvv^^><vv>^<<vv<<<^v<>>><><>>v><<<v>vvvv^^vv<v>><<^v^vvv><><vv>v><>v<<<^<v^>><^^>v^<v>><v>^^^v^v>><<<v<^^>>^v<>v^<vv^^<<v<v>v<<<<^^^v^v<<>>>v>>vv>^^<><^v<v><>>v^>>>>>^>v^v^<^v^v^vvv>v<v<^>vv^<<v>vv>>v^^vv<^v>>>>vv<>v<>^^vv^<v>v^>>vvv<<<v<<^vv^^^^>v>v>^><<<^>v^><v<^<<<v>^v^^^><<><<<^^<^^<>^<v>^<v<<v<^^vv>v<^v><v><v<>^v<^<v<^<v^v><v>><v<v<<>^<v<>>><>^v^v<<^><v^<<v<v^>^>v><^>^vv^^<v<v<vv<v>^v^v^>^<<>>>>>v^<>^>v^vv^><<>>^^<>v^><v>^vvv^>v^v><>^><<>v>v<^<^><^^vv<<><>>v>>v><vv>>^v<<>^vv<>^vv>v>v>^>^>>><><<>v<v>^<<^v^^<<<><v>>vv<^<vv<vv^<<v<<^v><<>v<^^^<<^v^>^v>^^^v^v>>>v>v^v>^>^vv<^^<<vv^>^<<<vv>v^<><<^vvv^^><>vv^v>v>^><<^^^^vvv^<vvv>><^v<^>^<>>^<v<<vv>>><v>vv^<>><v^<v>^v>^>v>^<^<^^^<<vvvv^>>>>>>>v><vv>^<>^^v^><>><^v^^<v^v<<<<v^>><>v^v<vv<><^<<<<^>^^>vv>><^v<v^v<<>^vvv>v^^><^^<^<>>^^v^vv<>v<^<<<v^^^><v<vv<<>v>v<>^v^><v^vv^v^^v<^^v^^v><>v<^v>><<^<^v^>><<vv<<^>^<<v^<>^><>v><vv^v>>^<v<<<^>vv<^v>^>v<<v>^>>^>>v^<v<v>>^v<^v^v><<><>^><<<><v<vvvv<v^<v^v><>^<>^^^^v>^>^vvvvv>v>>v><<vv<<v<><<^><<^v><<v<<<v><vv<^>^v>>>>^v<^v<<>>^>^<<vv^<^>v>><<^>^>^v><><>^><<v<>v^><<^v^<^^><^^v^<<^v^^>>^v^<^><vv>v^^<<^^^<><>^>v^v>v^>^v^vv>^^>>>>^^<^>>>^^v<vv<><^^<vvv<^^^vv>v<v<v>><<<>^>^^>^>^v<<<<>>^<<>><v>>v>^^<^v<>v<>v^>v^><^<^^><v^^v>^^vv<v<<>><<vv<>>v>^<<<<v<<v>^><^^<^<^<v^<<^^v>^v<^>v^v^<v^vv^>^^><^>v^v>>^^v^><vv<v<v<v>>>>><<><v><v^v^<v^<^^<v<>^>v>v<>>>v>^^^^>><v^v^^v<<<>v^<<^<v>>>><^v^<<><v<>>v><><v<v^v>^v^^<v<^<^^v>><<vv<<vv><>>^>^>vv<^<>^vvv^v<v^^<>v^v>^^<<<<<>^v^>^<>v^^<>v^v<vv>^<>vv^<^vv>><v^^vvvvv>><<>v<vv^<^<vv^v^<>^^<v^<vv^<v^v^v<<^>^>^>^^>>>vvv>^>v>v>>>^>vv^><>^><>v>^^<v^>^><<v>><<<>>v<vvvv^>^v<^<>^<v>^<>^^<<><>^v<><>>>^vv<^<<^<^v>v<<<<<^^v<^v<><v<<><^>v>^v>>^v^><^^^^v<><><>vv^<>vv<^v<^^><v^<^><^^v^v^<^^<<><v>v<v<v^<<^v><>v^v<^>vvv><<^v>>v><><v<<^>>>v<^>>v>^<>><>^<v^v^<vv<<^>v<^^>^<^v<^<<^^v<>>^>^>^v^^v^v<v^^vv^<v>>v><vv^vv>v<>v^>v^^>^^>><v><v^<<><<>><<^^>><^v<v<><<><<><v<v^<^<v>>>><v^^v^^>>>^^^^^<<vv<^><>^<<<vv^^^>^><<<v<^v>^<v<^>^vvv<<>vv><<>v>v^v>>>>>^<>><^^^><<<<v><<vv>>>v<^<vv^v^<<v>>>>^^vvv>v<>><v>>>v>>^v^vvv<<>vvv<<^^^<>vv^^v<<>^^^>>^<^v^<^^>v^><v>>^<<^v<<vv<vv>v^>>^>v^><^><>^>>>vv>><^^^>vv<<^^vv><^<>^>^^<^<>>^vv^>>^v><>v^>>><<<^^<^>^>v<^>^<^^<>>><^^<>^v^<<vvv<v><>vvv><v>v^v<<^<v>^^><<^vv^v>v>v<<^v^<<<>^><><vvv>v>^vv^v<>vv^>^^<^>^>v^^<vv^>v><v<<<><>>^v<^<><><^<v^^<<^<v>vv<><<>v^<v^>^>^^<><<>^<^<<v^^v<v^<><<>v>><^<<>^>^v^v<v^v><^>>^v<^>v<<>^^^<^v>>>^<v>vvvv<<v^<^^>vvvv>v<>v<v><vvvvv>^<><>vvv<>^<<>^>>>>v^<^<><^v>v^>>v><>^><<v^>^<<>^>^v^<v^^>>^v><v>^<v><>v^<^^>v>^>>>v^v>>>^<>^<>>>>>v>>vv^v<><<<><><v><<vv<<v<><>>vv<^<vv>^v<<>v^v<^v<><v>>^v>>vvv^^v>>v>^>^>v><v><^>^^<<>^v<^<<<<^>v<^>>v^<^v>^v<<>^>^vvv<^^vv>^vv>vv<>>v>v<v>>v^<<<<<^^v^>v>^<<<v^v>>v<v><vvv><v>^<vv><<>>^<^>^^<>>>>^<^v<>v^^>^<^^v<^><>><v>>^v^vv<^v<^><<vvv<>><>><^^>^<^v^<^<>v<<<^v>v^^^<>v^<v^>^v^>><>^^<v<^><<^^v^<>^<^vv>>><^v><v^>vv<^v<<<v^>>v>v^v>^<v>v<^<>v^vvv>^vv<<<<v><^><v>>^^>><^v><<^>v^^<<v^^<^<><<<<>^<v<^v^>v<<^^>v<<<<<vvv<v<^>^>^>^>>^>>>v^<<v>>^^v><vv<^v<v<^^^>>>^vvv<^v<>>>vv>^^><^v>vv^>>v>v^<>^<vv>^>^<<^>^^^>>^vv>^^>vvvv<>>^^^^>>>v>v^^>vv>vv^<<>^><^<v^vvvv><v<><v>><<<v<v<<^v><vv^vv^<>>>^>^<v<^v<>><^<vv^^><v>v^>v^<><v^vvv>^>v^^v^>^^>v<<<<^<<^>>v>v^^^<<<v>>>^^v>v<v><<<<^^^v>^vv^>><>^v<v<<^^<<<<><>>>vLine truncated
|
||||
@@ -0,0 +1,69 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
const FILENAME: &str = "example.txt";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const FILENAME: &str = "input.txt";
|
||||
|
||||
fn main() {
|
||||
let data = std::fs::read_to_string(FILENAME).unwrap();
|
||||
|
||||
part_1(&data);
|
||||
part_2(&data);
|
||||
}
|
||||
|
||||
fn part_2(data: &str) {
|
||||
let mut hs = HashSet::new();
|
||||
|
||||
let mut xs: isize = 0;
|
||||
let mut ys: isize = 0;
|
||||
|
||||
let mut xr: isize = 0;
|
||||
let mut yr: isize = 0;
|
||||
|
||||
hs.insert((xs, ys));
|
||||
|
||||
for (idx, c) in data.trim().chars().enumerate() {
|
||||
let x;
|
||||
let y;
|
||||
if idx % 2 == 0 {
|
||||
x = &mut xs;
|
||||
y = &mut ys;
|
||||
} else {
|
||||
x = &mut xr;
|
||||
y = &mut yr;
|
||||
}
|
||||
match c {
|
||||
'^' => *y += 1,
|
||||
'>' => *x += 1,
|
||||
'<' => *x -= 1,
|
||||
'v' => *y -= 1,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
hs.insert((*x, *y));
|
||||
}
|
||||
|
||||
println!("{}", hs.len());
|
||||
}
|
||||
|
||||
fn part_1(data: &str) {
|
||||
let mut hs = HashSet::new();
|
||||
|
||||
let mut x: isize = 0;
|
||||
let mut y: isize = 0;
|
||||
|
||||
hs.insert((x, y));
|
||||
|
||||
for c in data.trim().chars() {
|
||||
match c {
|
||||
'^' => y += 1,
|
||||
'>' => x += 1,
|
||||
'<' => x -= 1,
|
||||
'v' => y -= 1,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
hs.insert((x, y));
|
||||
}
|
||||
|
||||
println!("{}", hs.len());
|
||||
}
|
||||
Generated
+16
@@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day04"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"md5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "md5"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ae960838283323069879657ca3de837e9f7bbb4c7bf6ea7f1b290d5e9476d2e0"
|
||||
@@ -0,0 +1,7 @@
|
||||
[package]
|
||||
name = "day04"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
md5 = "0.8.0"
|
||||
@@ -0,0 +1 @@
|
||||
abcdef
|
||||
@@ -0,0 +1 @@
|
||||
yzbqklnj
|
||||
@@ -0,0 +1,27 @@
|
||||
#[cfg(debug_assertions)]
|
||||
const FILENAME: &str = "example.txt";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const FILENAME: &str = "input.txt";
|
||||
|
||||
fn main() {
|
||||
let data = std::fs::read_to_string(FILENAME).unwrap();
|
||||
|
||||
part_1_and_2(data.trim(), 5);
|
||||
part_1_and_2(data.trim(), 6);
|
||||
}
|
||||
|
||||
fn part_1_and_2(key: &str, length: usize) {
|
||||
for i in 1.. {
|
||||
let mut input = String::from(key);
|
||||
input.push_str(&i.to_string());
|
||||
|
||||
let hash = md5::compute(input);
|
||||
|
||||
let hash_str = format!("{:x?}", hash);
|
||||
|
||||
if hash_str.chars().take(length).all(|c| c == '0') {
|
||||
println!("{i}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day05"
|
||||
version = "0.1.0"
|
||||
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day05"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1,9 @@
|
||||
ugknbfddgicrmopn
|
||||
aaa
|
||||
jchzalrnumimnmhp
|
||||
haegwjzuvuyypxyu
|
||||
dvszwmarrgswjxmb
|
||||
qjhvhtzxzqqjkmpb
|
||||
xxyxx
|
||||
uurcxstgmygtbstg
|
||||
ieodomkazucvgmuy
|
||||
+1000
@@ -0,0 +1,1000 @@
|
||||
rthkunfaakmwmush
|
||||
qxlnvjguikqcyfzt
|
||||
sleaoasjspnjctqt
|
||||
lactpmehuhmzwfjl
|
||||
bvggvrdgjcspkkyj
|
||||
nwaceixfiasuzyoz
|
||||
hsapdhrxlqoiumqw
|
||||
lsitcmhlehasgejo
|
||||
hksifrqlsiqkzyex
|
||||
dfwuxtexmnvjyxqc
|
||||
iawwfwylyrcbxwak
|
||||
mamtkmvvaeeifnve
|
||||
qiqtuihvsaeebjkd
|
||||
skerkykytazvbupg
|
||||
kgnxaylpgbdzedoo
|
||||
plzkdktirhmumcuf
|
||||
pexcckdvsrahvbop
|
||||
jpocepxixeqjpigq
|
||||
vnsvxizubavwrhtc
|
||||
lqveclebkwnajppk
|
||||
ikbzllevuwxscogb
|
||||
xvfmkozbxzfuezjt
|
||||
ukeazxczeejwoxli
|
||||
tvtnlwcmhuezwney
|
||||
hoamfvwwcarfuqro
|
||||
wkvnmvqllphnsbnf
|
||||
kiggbamoppmfhmlf
|
||||
ughbudqakuskbiik
|
||||
avccmveveqwhnjdx
|
||||
llhqxueawluwmygt
|
||||
mgkgxnkunzbvakiz
|
||||
fwjbwmfxhkzmwtsq
|
||||
kzmtudrtznhutukg
|
||||
gtvnosbfetqiftmf
|
||||
aoifrnnzufvhcwuy
|
||||
cldmefgeuwlbxpof
|
||||
xdqfinwotmffynqz
|
||||
pajfvqhtlbhmyxai
|
||||
jkacnevnrxpgxqal
|
||||
esxqayxzvortsqgz
|
||||
glfoarwvkzgybqlz
|
||||
xdjcnevwhdfsnmma
|
||||
jyjktscromovdchb
|
||||
pvguwmhdvfxvapmz
|
||||
iheglsjvxmkzgdbu
|
||||
lwjioxdbyhqnwekv
|
||||
zcoguugygkwizryj
|
||||
ogvnripxxfeqpxdh
|
||||
hkvajhsbfnzsygbm
|
||||
cnjqeykecopwabpq
|
||||
wojjtbcjinoiuhsj
|
||||
kpwpvgxbyzczdzjq
|
||||
wrvhylisemlewgzk
|
||||
uiezkmnhilfzahtm
|
||||
mucteynnuxpxzmvt
|
||||
zaiwbgxefusfhmst
|
||||
apptbogpxivjwink
|
||||
qryboarjtwjhjgjb
|
||||
irehxupgyseaahzd
|
||||
fobstqxguyubggoh
|
||||
ysriumfghtxtfxwe
|
||||
auchdmasvfeliptw
|
||||
mztuhefcrnknyrdl
|
||||
tyjmkhihbwabjtaa
|
||||
yquzkdtgsljkaebw
|
||||
almvdvofjtkyzbmd
|
||||
emqftiuqqpdwwbrv
|
||||
hrrhmqfpepvbawvw
|
||||
atrkgykycvgxbpyb
|
||||
dhthetnealksbdan
|
||||
zzqafhgicubptiyo
|
||||
qdtaieaziwhbttnw
|
||||
kyskgapdgqrtrefw
|
||||
edwzlpqztpydmdlr
|
||||
awszjnlmvlyqsuvl
|
||||
kcrtmtshtsgixvcp
|
||||
jtaskgkijivbbkri
|
||||
mmggfwapsetemiuj
|
||||
itagrrnjbnmhgppd
|
||||
uqmbezechbrpbnqq
|
||||
nnyimvtascflpzsa
|
||||
knqeimypkdttyudj
|
||||
vgoiyvtvegwyxjjd
|
||||
qubzdxsbecktzrho
|
||||
zehojtvktsbbxijb
|
||||
xepmjrekwcgoxyoh
|
||||
bnptxnocbpbqbyeq
|
||||
sfvynsywscbnymos
|
||||
dsltfbpcmffbluba
|
||||
kncrlzlmkikylppa
|
||||
siwudrvmildgaozv
|
||||
jhhefbvbvneqzvtc
|
||||
lqjgztxitbuccqbp
|
||||
himmwlbhjqednltt
|
||||
vwognchyertnnfil
|
||||
eejakhapkbodrntf
|
||||
qxuijkkhhlskgrba
|
||||
aankpfxxicfpllog
|
||||
vuxykvljyqexfhrn
|
||||
epgygflbxlbwybzq
|
||||
zuxmwvetmvcszayc
|
||||
xttwhfqmemgtjnkf
|
||||
hftwldmivyfunfvl
|
||||
bejlyxfamzliilrj
|
||||
zkehazcxyyvtrxti
|
||||
dsgafehmcfpycvgz
|
||||
igremmqdojqdvwmb
|
||||
swnjzvmhcslvkmiw
|
||||
fchzbfbmtqtxmaef
|
||||
xwjmyyrlznxrcytq
|
||||
brwcwzpcvbwdrthl
|
||||
fvrlridacsiojdmb
|
||||
mhsturxdlmtxozvy
|
||||
usxvqyrwywdyvjvz
|
||||
gwazuslvmarfpnzm
|
||||
rgkbudaqsnolbcqo
|
||||
dpxvlbtavdhdedkj
|
||||
nnqmjzejhodyfgyd
|
||||
ozoazxkfhujgtzvy
|
||||
psdgvhzdiwnuaxpl
|
||||
tznkilxpogbzgijz
|
||||
wnpytcseirtborhh
|
||||
lhauurlfsmagfges
|
||||
oqfbzixnlywkzwwy
|
||||
yoehapoyjpakziom
|
||||
vtjftdcsfdzbmtrn
|
||||
zcshfnodiwixcwqj
|
||||
wapbxpaxgjvtntkm
|
||||
qfyypkyvblrtaenh
|
||||
bsxhbxkovgukhcza
|
||||
kitdmvpiwzdonoyy
|
||||
slkbhxmehzavbdsf
|
||||
dovzjouqkzkcmbkl
|
||||
qpbigdcqkfnfkxvq
|
||||
eaiaquhnesvtcdsv
|
||||
mhbezlhqojdsuryj
|
||||
dqprkkzxlghkoccx
|
||||
xqepmorryeivhrhm
|
||||
frwmrjpezwmjflvf
|
||||
gjpfgwghodfslwlf
|
||||
fzyvajisdjbhfthq
|
||||
pvzxkxdscdbilrdb
|
||||
mtaxmqcnagmplvnm
|
||||
rlyafujuuydrqwnc
|
||||
gvqvrcxwyohufehq
|
||||
lmrkircgfrfusmfd
|
||||
ovlpnkxcpimyaspb
|
||||
xhyjremmqhdqywju
|
||||
pxfczlhpzbypfarm
|
||||
utjhprzhtggausyp
|
||||
utzkkzlnyskjtlqh
|
||||
cecbcnxpazvkedic
|
||||
xwvoaggihrbhmijq
|
||||
krredhmtwlfmyagw
|
||||
lwfhxgbknhwudkzw
|
||||
vyczyvuxzmhxmdmn
|
||||
swcoaosyieqekwxx
|
||||
waohmlfdftjphpqw
|
||||
gaclbbfqtiqasijg
|
||||
ybcyaxhluxmiiagp
|
||||
xgtxadsytgaznndw
|
||||
wzqhtjqpaihyxksm
|
||||
fdwltsowtcsmsyhm
|
||||
rpoelfbsararhfja
|
||||
tswgdacgnlhzwcvz
|
||||
xjgbhdlxllgeigor
|
||||
ksgthvrewhesuvke
|
||||
whgooqirdjwsfhgi
|
||||
toztqrxzavxmjewp
|
||||
hbkayxxahipxnrtl
|
||||
lazimkmdnhrtflcu
|
||||
ndoudnupbotwqgmr
|
||||
niwuwyhnudxmnnlk
|
||||
hlmihzlrpnrtwekr
|
||||
wzkttdudlgbvhqnc
|
||||
rfyzzgytifkqlxjx
|
||||
skddrtwxcyvhmjtb
|
||||
mljspkvjxbuyhari
|
||||
xwkhozaoancnwaud
|
||||
nookruxkdffeymdz
|
||||
oiqfvpxmcplyfgoa
|
||||
qoxggshmrjlzarex
|
||||
lsroezewzkrwdchx
|
||||
nkoonmvdydgzspcl
|
||||
lygxeqztdqklabov
|
||||
jempjyzupwboieye
|
||||
hpdaqkhjiddzybly
|
||||
cvcizjlnzdjfjlbh
|
||||
vaaddsbkcgdjhbkj
|
||||
pjxmtxoyrkmpnenf
|
||||
ujqdvyqnkbusxlps
|
||||
miyvzkzqploqaceb
|
||||
gapcsbkulicvlnmo
|
||||
xqpcyriqhjhaeqlj
|
||||
ipumdjwlldzqhmgh
|
||||
swdstecnzttmehxe
|
||||
ucmqordmzgioclle
|
||||
aywgqhmqlrzcxmqx
|
||||
ptkgyitqanvjocjn
|
||||
wcesxtmzbzqedgfl
|
||||
rnetcouciqdesloe
|
||||
chpnkwfdjikqxwms
|
||||
onpyrjowcuzdtzfg
|
||||
tydnqwaqwkskcycz
|
||||
dhamguhmkjzzeduy
|
||||
oecllwyrlvsyeeuf
|
||||
gsukajpoewxhqzft
|
||||
sgdnffdixtxidkih
|
||||
pqqzjxzydcvwwkmw
|
||||
wnjltltufkgnrtgm
|
||||
hylaicyfrqwolnaq
|
||||
ovfnugjjwyfjunkm
|
||||
xknyzsebmqodvhcl
|
||||
uwfmrjzjvvzoaraw
|
||||
zaldjvlcnqbessds
|
||||
zphvjuctrsksouvz
|
||||
ceqbneqjwyshgyge
|
||||
wmelhaoylbyxcson
|
||||
nghuescieaujhgkj
|
||||
dhjmflwwnskrdpph
|
||||
exvanqpoofjgiubf
|
||||
aidkmnongrzjhsvn
|
||||
mdbtkyjzpthewycc
|
||||
izctbwnzorqwcqwz
|
||||
hrvludvulaopcbrv
|
||||
mrsjyjmjmbxyqbnz
|
||||
sjdqrffsybmijezd
|
||||
geozfiuqmentvlci
|
||||
duzieldieeomrmcg
|
||||
ehkbsecgugsulotm
|
||||
cymnfvxkxeatztuq
|
||||
bacrjsgrnbtmtmdl
|
||||
kbarcowlijtzvhfb
|
||||
uwietqeuupewbjav
|
||||
ypenynjeuhpshdxw
|
||||
fwwqvpgzquczqgso
|
||||
wjegagwkzhmxqmdi
|
||||
vocvrudgxdljwhcz
|
||||
nnytqwspstuwiqep
|
||||
axapfrlcanzgkpjs
|
||||
lklrjiszochmmepj
|
||||
gxadfpwiovjzsnpi
|
||||
qidsjxzgwoqdrfie
|
||||
wgszciclvsdxxoej
|
||||
kwewlmzxruoojlaq
|
||||
ywhahockhioribnz
|
||||
ucbqdveieawzucef
|
||||
mdyyzmfoaxmzddfv
|
||||
hsxnabxyqfzceijv
|
||||
vivruyvbrtaqeebr
|
||||
jxfeweptjtgvmcjc
|
||||
mmypqxmpurhculwd
|
||||
mpiaphksvctnryli
|
||||
xqzqnuxmuzylkkun
|
||||
fndmtefjxxcygtji
|
||||
dnorqlldvzqprird
|
||||
nutokyajmjpwjaqu
|
||||
vlupfperqyqkjcaj
|
||||
dgihjeokrphkpdnk
|
||||
nvbdyrlheqzixuku
|
||||
mhrkntnxvsmvrpka
|
||||
kvhkyanlhhymwljf
|
||||
fhipumtegqfgeqqw
|
||||
vpfjgveycdefuabu
|
||||
kzincljffncylcsf
|
||||
tsezxymwmjtyegqw
|
||||
wxhcdrqedkdcwxli
|
||||
ueihvxviirnooomi
|
||||
kfelyctfvwyovlyh
|
||||
horzapuapgtvzizz
|
||||
iiqkdpmfvhwwzmtj
|
||||
rsaclclupiicstff
|
||||
quwkkhrafypkaoum
|
||||
gyrgkgmwqfkeudfe
|
||||
noydhbqacwptyfmy
|
||||
efwwuipzgtkwffhf
|
||||
suyojcitomdxsduh
|
||||
lbcxnsykojkufkml
|
||||
zpglsvoutvzkgdep
|
||||
usgrufyvgsbsmbpr
|
||||
katrrwuhwvunjqor
|
||||
btngwrpcxoyfbgbc
|
||||
bxjscjdiowjrkpns
|
||||
nwxvnfrnlkgqxvhf
|
||||
ikhyqkvljucgdlag
|
||||
xibnxsjopmxvflkl
|
||||
mzplumcfivqcjqnz
|
||||
jqflcxoxzlbwlxry
|
||||
fcscvmfepdxrshxe
|
||||
wlpffwunffklzbuc
|
||||
emvrlqajjgwzfmle
|
||||
rhaheurtzrfoqkyq
|
||||
ifuuhpxmadaysfsx
|
||||
ncyfvleyzqntpcoo
|
||||
zeogmyaqccmtvokd
|
||||
jqppbzebppdnpurn
|
||||
xixarswxsiwjzgni
|
||||
ezruwzajsoombphs
|
||||
hmiqfeizyprielxf
|
||||
jnaoxljnftymsfey
|
||||
extgzrxzovlsixnf
|
||||
yhyfmovvlrwoezsv
|
||||
ffnybaolppuzpjym
|
||||
pqowimdiusccaagn
|
||||
jgceiosiihpjsmnu
|
||||
hkoexeaopebktngx
|
||||
njhzuvsygymejqav
|
||||
yjkgcclgtvushcfk
|
||||
gmbjxhnkkxlihups
|
||||
pdlwysadiebsidjz
|
||||
omrwmgzulfoaqros
|
||||
ofvvgdezwvcffdcy
|
||||
otytpuklhxcpxhgd
|
||||
eyfaosxdauumvlux
|
||||
mvdthjfstrlqlyuo
|
||||
mdgdchgnlxaxspdm
|
||||
bakjezmhbwqxzevd
|
||||
msakswaphdwaodhg
|
||||
vjcqscgdbnsxdllh
|
||||
jjywaovewbuzreoj
|
||||
nqvplhwacylifvwk
|
||||
lpwmpixbxysmsign
|
||||
flcvbpxrchcpbgcb
|
||||
qjpkeuenenwawlok
|
||||
bnqkflfmdmntctya
|
||||
fzsgzpoqixvpsneq
|
||||
icwfdisutoilejld
|
||||
relchofohnkwbumi
|
||||
aljalgdaqwhzhfwr
|
||||
cahkvnwnbwhodpqs
|
||||
dnrzeunxiattlvdm
|
||||
nsmkhlrpwlunppjs
|
||||
mqqsexlwfqnogwub
|
||||
tfavelkqrtndpait
|
||||
ooguafrnmprfxcnz
|
||||
ntynkiordzxtwrqa
|
||||
rkkyzlxekqqlkvym
|
||||
ofxcivdnwcmgfnme
|
||||
ywotqwbrqxlrnobh
|
||||
nrbbiypwhrqihvev
|
||||
flqsjixxtydheufs
|
||||
lcfrfzypstrqctja
|
||||
hyzbuzawuzjrynny
|
||||
exfbywcnstebnvmq
|
||||
vydzwnbmcihvqrnj
|
||||
qmwqaaylinzrdmiw
|
||||
lpxpztpvfggspeun
|
||||
lhxmqqbracsuyrfm
|
||||
zgkwsrabaseidbrw
|
||||
yjlmbhbqsqgszsun
|
||||
mqfzqtbxtuteabtd
|
||||
izomzdmcqmfrevwd
|
||||
iqijrlqurdwrkoln
|
||||
fxhqzpgoxxjkkhql
|
||||
oulwontmgrjeopnk
|
||||
edaigfydjexvzzvj
|
||||
vjhybiklxpxjqpwc
|
||||
ypxfbfnpbmqmwtte
|
||||
xzvcsgasztrxdzud
|
||||
rpulqmobptfarboo
|
||||
palacmdijxzzykrf
|
||||
jmllwukplufohiby
|
||||
dnswayomusiekfmy
|
||||
sxbrjqtqgzzwhcfo
|
||||
lylvndsgbnbqiejm
|
||||
jaxxhoulxnxnaenr
|
||||
nblissutfazbcpwn
|
||||
zmlsjszzldvbiacr
|
||||
kewojtlchfkclqwk
|
||||
eqvfjasddggvfame
|
||||
yibzqlvxtraxpdon
|
||||
dgnbxsbmdrtyvaac
|
||||
uoxrcxfimhgtxqhy
|
||||
xfdxalrwcwudlviq
|
||||
xmtbdklqptoswpwl
|
||||
zezyopzdztdjerfl
|
||||
xuzluhjsqvhytgbc
|
||||
qdjtmeckispmgzki
|
||||
phakupesplzmmmvc
|
||||
gpuoqfffumzszybn
|
||||
bhywxqkrrlwuebbw
|
||||
ibvwgoyvelzenkzl
|
||||
ncohvvbmiekbaksa
|
||||
fzuvqzvxvdbeirrp
|
||||
lshtzniokucwojjd
|
||||
punrduvlnrulkium
|
||||
gnfpikidnfobrrme
|
||||
vxkvweekmnvkzgyl
|
||||
rhydssudkcjlqgxn
|
||||
cjtqvlaahohcgumo
|
||||
jwzmfyinsfwecgcb
|
||||
blpeseqhlzfilpuf
|
||||
jvtpjkyokzcvagon
|
||||
qjomincbcobjczpe
|
||||
ugsyzkzgdhxtmsfz
|
||||
hleaqgwzqjwajcra
|
||||
coumfghptpnxvvov
|
||||
hqpnbupnzwpdvgqd
|
||||
cpouyodqxgviasem
|
||||
lljvxeyozckifhfd
|
||||
huqtnvutdyfgwtwa
|
||||
yenlveuynmlmmymu
|
||||
ojdyufkomxiwjmbf
|
||||
spjzgvcwvzgffjkk
|
||||
vxykmjhyvmhyssbp
|
||||
tazdeqggfcjfvwwn
|
||||
uumwcngwcytvpufx
|
||||
avovuzkrevloneop
|
||||
owczrtbnrvjfemkt
|
||||
hzpugcanaxyvaokj
|
||||
iishlodnxvjtgzyn
|
||||
qosdonclrnxirham
|
||||
eonqlnwevahydddg
|
||||
ryqmnuikftlxuoqy
|
||||
whqepbcwabzbthha
|
||||
vekisvnwhgpyemxr
|
||||
lrwxzoamnvpnlhap
|
||||
ywepvqthnorfswjv
|
||||
evqwvsoazmwyypjy
|
||||
bgwoojddubppmjxf
|
||||
jypkfrthzgtyeddi
|
||||
tynabbhfjzkrqsju
|
||||
adxstbfqheuqbcuk
|
||||
gqwqiocdyqoiblrx
|
||||
ybuddlyuskdlegxv
|
||||
luwynbsmpgyeqsbr
|
||||
ltyqgqoyljibqndo
|
||||
jaedpajzphfybajh
|
||||
epglnrxofptsqvmy
|
||||
zjdpxkngfkstxbxh
|
||||
ekegphcwanoickfu
|
||||
cqvhuucvejqirvfs
|
||||
uqudnnqumsqcgefo
|
||||
qnzunermlnpcfflo
|
||||
ovyxaniqaawzfuxx
|
||||
djekxcezjowdhopq
|
||||
bwtwbmdehrhpjnlk
|
||||
nilsnlacerweikfa
|
||||
hyrigsrmsrzcyaus
|
||||
gvmdmgddduylmxic
|
||||
ewzovdblhmjgjwsk
|
||||
ojjfsknlonzguzlq
|
||||
yjgfruvpjvlvrvvq
|
||||
cyoryodwyhzwprbv
|
||||
crsjclrurcquqgut
|
||||
sjhfhobwtojxcmem
|
||||
ibxfjudilmdeksea
|
||||
uqbhdbjoeupyhbcz
|
||||
uqbxigzxuxgmjgnw
|
||||
jashafmtzrhswirg
|
||||
dexiolovaucyooka
|
||||
czjbwwnlwcoqnoiu
|
||||
ojigosazigfhttjc
|
||||
zfiqtgrqbmftknzn
|
||||
dlzbmvmolssbqlzl
|
||||
sgmchcurrutdtsmw
|
||||
scdwjqsdohcdrwry
|
||||
cgtdvecqwplpprxn
|
||||
iiplenflfczaktwi
|
||||
wmgnwfxfcjhyeiqg
|
||||
giihshowtcatecvl
|
||||
nqhzfincclumvkaz
|
||||
kxstpzgdfvepionc
|
||||
agbhxcijxjxerxyi
|
||||
hmgfqevgdyvisyvs
|
||||
tthakmvpowpvhtao
|
||||
ottalcghygpaafbo
|
||||
aplvozayycremgqg
|
||||
dbjxlnaouxqtdpfz
|
||||
peeyallzjsdvpalc
|
||||
ndtdjyboixuyhfox
|
||||
llabnbcobexfoldn
|
||||
cweuvfnfyumbjvxr
|
||||
ewkhhepaosalnvkk
|
||||
pivyiwsiqpwhagyx
|
||||
auzsnwdcerfttawt
|
||||
grbfrekupciuzkrt
|
||||
byfwzadtzrbndluf
|
||||
lluypxjeljzquptk
|
||||
pskwsnhqanemtfou
|
||||
sxvrtqqjdjkfhhrm
|
||||
ulsmqgmshvijyeqh
|
||||
qigofesfhekoftkf
|
||||
zhatniakqtqcxyqa
|
||||
uuczvylgnxkenqee
|
||||
mlitvtuxknihmisc
|
||||
srrtrxdvcokpyfmz
|
||||
osispuucklxcfkeb
|
||||
vqhazlaulmnpipql
|
||||
umkiueljberqhdig
|
||||
knvpbkbvgoqzwprp
|
||||
nbsocqikhuvsbloj
|
||||
wjnpepjkzkednqbm
|
||||
agbhmytsofuyqcor
|
||||
gvogzhkkpxyfecko
|
||||
ardafguxifeipxcn
|
||||
yiajcskbgykyzzkw
|
||||
sejunbydztyibnpq
|
||||
dqrgfggwcnxeiygy
|
||||
xnqqwilzfbhcweel
|
||||
jjtifhlvmyfxajqi
|
||||
gwszrpgpmbpiwhek
|
||||
kydzftzgcidiohfd
|
||||
efprvslgkhboujic
|
||||
kecjdfwqimkzuynx
|
||||
rildnxnexlvrvxts
|
||||
dlnhjbqjrzpfgjlk
|
||||
qluoxmzyhkbyvhub
|
||||
crydevvrjfmsypbi
|
||||
dosaftwumofnjvix
|
||||
pwsqxrfwigeffvef
|
||||
nzyfmnpwqyygjvfx
|
||||
iccbckrkxlwjsjat
|
||||
bmputypderxzrwab
|
||||
bhuakynbwnlreixb
|
||||
qmrzfyqjiwaawvvk
|
||||
juvtixbkwyludftn
|
||||
zapmjxmuvhuqlfol
|
||||
paiwrqjhpjavuivm
|
||||
tsepfbiqhhkbyriz
|
||||
jpprewufiogxoygk
|
||||
mmapyxbsugcsngef
|
||||
pduhmgnepnpsshnh
|
||||
aetndoqjvqyjrwut
|
||||
fnfvlorhwpkkemhz
|
||||
gedfidpwvoeazztl
|
||||
beclvhospgtowaue
|
||||
wsclsvthxustmczm
|
||||
tjbxhnpniuikijhe
|
||||
rhetyhvfcemponeg
|
||||
mavonujurprbeexi
|
||||
argbrpomztrdyasa
|
||||
bzvtffbtygjxmkvh
|
||||
maqyqkhsqgzfzvve
|
||||
seeirbiynilkhfcr
|
||||
wxmanwnozfrlxhwr
|
||||
dieulypsobhuvswb
|
||||
nxevassztkpnvxtb
|
||||
jclxuynjsrezvlcy
|
||||
xlolzyvgmwjsbmyf
|
||||
tguzoeybelluxwxc
|
||||
fkchoysvdoaasykz
|
||||
cyynwbfcqpqapldf
|
||||
rhifmzpddjykktuy
|
||||
ndvufsyusbxcsotm
|
||||
txutnzvdsorrixgg
|
||||
qjoczhukbliojneu
|
||||
ufhwujotncovjjsz
|
||||
kclsgsdwcrxsycbr
|
||||
yscwmlrdaueniiic
|
||||
nxhivrovpkgsmugb
|
||||
fdxqfyvwwvgeuqkv
|
||||
femtamfylysohmpr
|
||||
amsyzslvyxsoribh
|
||||
nhmqxncwsonhgbcz
|
||||
uomqsvcbpthlmcue
|
||||
kxtfapcqrnjkkslj
|
||||
xtieihonlfubeync
|
||||
adpcjqxgydulchgj
|
||||
cjynnzsmmujsxxpd
|
||||
neeapmzweidordog
|
||||
szoivgqyqwnyjsnk
|
||||
uwgrtzaqezgphdcu
|
||||
ptpgttqxocjwxohi
|
||||
fhltebsizfwzpgpf
|
||||
emmsazsidspkhgnh
|
||||
dxcprkbcjeqxqzgn
|
||||
tpxzqwxbzwigdtlt
|
||||
afsmksnmzustfqyt
|
||||
xyehnftstacyfpit
|
||||
vcrfqumhjcmnurlw
|
||||
rrznpjzcjgnugoch
|
||||
gbxnzkwsjmepvgzk
|
||||
jwobshgwerborffm
|
||||
zmuvfkhohoznmifs
|
||||
buyuwgynbtujtura
|
||||
bevncenmpxfyzwtf
|
||||
hqqtcrhzfsrcutjh
|
||||
kbpzshllpiowepgc
|
||||
alspewedcukgtvso
|
||||
xvsvzzdcgjuvutrw
|
||||
pmwulqraatlbuski
|
||||
abuzsiinbueowpqn
|
||||
oedruzahyfuchijk
|
||||
avhcuhqqjuqkesoq
|
||||
azqgplkzsawkvnhb
|
||||
rjyoydogkzohhcvx
|
||||
aezxwucqvqxuqotb
|
||||
kxobnsjvzvenyhbu
|
||||
nnjoiilshoavzwly
|
||||
aijttlxjrqwaewgk
|
||||
cvsaujkqfoixarsw
|
||||
zngtoacpxcsplgal
|
||||
qhkxliqtokvepcdv
|
||||
aixihrtdmxkfvcqw
|
||||
owbgdgdymxhhnoum
|
||||
tajsagmruwzuakkd
|
||||
ckrfduwmsodeuebj
|
||||
alfdhuijuwyufnne
|
||||
xpchlkijwuftgmnm
|
||||
rwcrvgphistiihlg
|
||||
xdaksnorrnkihreq
|
||||
akeschycpnyyuiug
|
||||
rgputhzsvngfuovz
|
||||
lerknhznuxzdhvre
|
||||
mqiqmyladulbkzve
|
||||
csnmupielbbpyops
|
||||
kwgrwgmhfzjbwxxz
|
||||
npwtvbslvlxvtjsd
|
||||
zxleuskblzjfmxgf
|
||||
hexvporkmherrtrn
|
||||
rhtdhcagicfndmbm
|
||||
qhnzyuswqwoobuzz
|
||||
dpvanjuofrbueoza
|
||||
kjcqujmnhkjdmrrf
|
||||
gholddsspmxtpybg
|
||||
jihlvyqdyzkshfsi
|
||||
zuviqmuqqfmtneur
|
||||
kzexjowatvkohrtx
|
||||
wgijnfhibsiruvnl
|
||||
zevkrkmhsxmicijb
|
||||
khxrcteqourjvoxa
|
||||
ylpxlkcnenbxxtta
|
||||
zrfsvctbojjkpvtw
|
||||
nlzbudxibnmcrxbt
|
||||
cqnscphbicqmyrex
|
||||
ywvdohheukipshcw
|
||||
riwatbvjqstubssf
|
||||
idlztqqaxzjiyllu
|
||||
sdpdgzemlqtizgxn
|
||||
rjtbovqlgcgojyjx
|
||||
fnfrfwujmjwdrbdr
|
||||
osnppzzmrpxmdhtj
|
||||
ljhwngclvydkwyoe
|
||||
chwqkrkzrvjwarat
|
||||
jmydkwpibkvmqlgs
|
||||
zvhfmbxnlxtujpcz
|
||||
jsnhsphowlqupqwj
|
||||
fzhkkbpasthopdev
|
||||
jerntjdsspdstyhf
|
||||
gctwmaywbyrzwdxz
|
||||
xemeaiuzlctijykr
|
||||
xulrqevtbhplmgxc
|
||||
yfejfizzsycecqpu
|
||||
gboxrvvxyzcowtzm
|
||||
lpvhcxtchwvpgaxp
|
||||
wdiwucbdyxwnjdqf
|
||||
qgwoqazzjlvnjrwj
|
||||
prtlnkakjfqcjngn
|
||||
fagvxsvjpuvqxniz
|
||||
xacmxveueaakfbsm
|
||||
ginvtonnfbnugkpz
|
||||
qpvggsppewfzvwin
|
||||
reoqnlzruyyfraxa
|
||||
kolwtqhifjbbuzor
|
||||
vrkcywvdhdprztww
|
||||
ngdvyfmvjqhbzbxt
|
||||
rooxeoilqzqjunmp
|
||||
efxmdprtogtxgyqs
|
||||
qrhjuqndgurcmwgu
|
||||
ouitjprueefafzpl
|
||||
kirdwcksqrbwbchp
|
||||
fpumsmogojuywezo
|
||||
lgjrgykywugzjees
|
||||
xigioqcpjabpbdas
|
||||
ewkhuprpqzikmeop
|
||||
fgrgxsqeducigxvr
|
||||
bclkursnqkzmjihl
|
||||
jozidniwvnqhvsbc
|
||||
oghcilcyozrmmpta
|
||||
xbgmaungzcpasapi
|
||||
iqowypfiayzbcvhv
|
||||
opdehgwdgkocrgkf
|
||||
zfzvdjeinlegcjba
|
||||
vhakxvlcayuzukap
|
||||
xyradgyiebpevnwe
|
||||
eamhtflgedwyshkn
|
||||
igteqdgchjeulfth
|
||||
kwsfkigxzpbgdxod
|
||||
vapnpsbdboiewpzp
|
||||
wbuqhjsngxpqshen
|
||||
vxxilouxuytitwgm
|
||||
cpnwlkwnkeanqnet
|
||||
wdmbtqvvlowftvgb
|
||||
wjtmcecpyqzwpbqg
|
||||
jnxmoxdhvsphcdeg
|
||||
wabxfxpotoywwodn
|
||||
mwbsoxzlqpqobvvh
|
||||
coktshbyzjkxnwlt
|
||||
rzhnggpslwzvyqrp
|
||||
dgzuqbzarbutlkfx
|
||||
wunajaiiwgijfvjh
|
||||
uotdbcgmsvbsfqlb
|
||||
kxdtlgmqbccjqldb
|
||||
ngmjzjwvwbegehfr
|
||||
cvpsabqfpyygwncs
|
||||
wqluvqlhdhskgmzj
|
||||
rbveperybfntcfxs
|
||||
fbmoypqdyyvqyknz
|
||||
zxpgzwnvmuvkbgov
|
||||
yexcyzhyrpluxfbj
|
||||
ltqaihhstpzgyiou
|
||||
munhsdsfkjebdicd
|
||||
plecvjctydfbanep
|
||||
kjrxnnlqrpcieuwx
|
||||
zbcdtcqakhobuscf
|
||||
kgovoohchranhmsh
|
||||
llxufffkyvuxcmfx
|
||||
tgaswqyzqopfvxtw
|
||||
kojcqjkdpzvbtjtv
|
||||
xggdlkmkrsygzcfk
|
||||
vvitpsnjtdqwyzhh
|
||||
gcqjuwytlhxsecci
|
||||
vbsghygcsokphnrg
|
||||
vejqximdopiztjjm
|
||||
hudqtwmwkviiuslp
|
||||
vwswfvpcwwpxlyry
|
||||
gxmfiehdxptweweq
|
||||
qjmekjdcedfasopf
|
||||
pqyxdxtryfnihphf
|
||||
felnavctjjojdlgp
|
||||
hbimufguekgdxdac
|
||||
dhxhtnqgfczywxlr
|
||||
pssottpdjxkejjrh
|
||||
edieanguabapxyig
|
||||
sciinanyqblrbzbb
|
||||
irxpsorkpcpahiqi
|
||||
qsxecaykkmtfisei
|
||||
ivfwlvxlbnrzixff
|
||||
hqxzzfulfxpmivcw
|
||||
vvbpaepmhmvqykdg
|
||||
cetgicjasozykgje
|
||||
wuetifzdarhwmhji
|
||||
gaozwhpoickokgby
|
||||
eldnodziomvdfbuv
|
||||
favpaqktqaqgixtv
|
||||
twbcobsayaecyxvu
|
||||
lzyzjihydpfjgqev
|
||||
wnurwckqgufskuoh
|
||||
fxogtycnnmcbgvqz
|
||||
aetositiahrhzidz
|
||||
dyklsmlyvgcmtswr
|
||||
ykaxtdkjqevtttbx
|
||||
kfmnceyxyhiczzjm
|
||||
nnizopcndipffpko
|
||||
yjmznhzyfinpmvkb
|
||||
sljegcvvbnjhhwdd
|
||||
zmkeadxlwhfahpwg
|
||||
rwvcogvegcohcrmx
|
||||
aguqwrfymwbpscau
|
||||
vlusytjagzvsnbwe
|
||||
smvzhburcgvqtklh
|
||||
rfuprvjkhazrcxpv
|
||||
megqlnoqmymcrclc
|
||||
gvldhkewtmlwqvqv
|
||||
awynhvtyziemnjoa
|
||||
voprnvtnzspfvpeh
|
||||
dhlguqwmunbbekih
|
||||
goayirdhnjrfuiqi
|
||||
eoghydfykxdslohz
|
||||
chpippjykogxpbxq
|
||||
hqbycjweqczwjwgf
|
||||
pvefsrvwumrlvhmt
|
||||
eghwdovaynmctktk
|
||||
crwkxoucibumzawc
|
||||
bzbtahvhkdigvvtj
|
||||
bnbptgihhfubxhho
|
||||
ddqmbwyfmfnjjaro
|
||||
gvtswqyzazihctif
|
||||
vmqctjpgadxztqqb
|
||||
dgnndowtpeooaqqf
|
||||
sxdvctfdtalufxty
|
||||
ylgeexosibsmmckw
|
||||
sxplpyskbpqnojvw
|
||||
coarhxtsvrontyeg
|
||||
fyoaurggjupvzvlv
|
||||
jlyrkqsiwuggvjem
|
||||
uwbsjoxonreuucyi
|
||||
gihuqvwxovbgokes
|
||||
dxzaaxupbcgnxcwf
|
||||
gidrgmvyrlqqslve
|
||||
csflmlvqmonoywpx
|
||||
jkxkpixlythlacnk
|
||||
ejkarcdkdslldugv
|
||||
dbzmsusevohhjkmr
|
||||
cbrqzualjpdtworc
|
||||
kpgidqlmcbpfmmwu
|
||||
zwghjuofexfowqam
|
||||
ncdlxmcrsmsocetz
|
||||
kfprzqacefifjkbd
|
||||
swwzivrxulkhvldc
|
||||
wgqejhigbjwunscp
|
||||
rsstnwcyybfauqxu
|
||||
qhngfxyhdqopyfgk
|
||||
zrndpyyejsmqsiaj
|
||||
xxknxwpvafxiwwjc
|
||||
mmaahwgoiwbxloem
|
||||
tabacndyodmpuovp
|
||||
yriwomauudscvdce
|
||||
duvyscvfidmtcugl
|
||||
mgipxnqlfpjdilge
|
||||
imeeqcdetjuhfjnw
|
||||
dvkutrdofpulqkyh
|
||||
jefvtlktxegpmbya
|
||||
iyzudqgpvlzjfydh
|
||||
giohapxnpaqayryd
|
||||
qheqdprmnqlpztls
|
||||
rdxhijmzegxkotoq
|
||||
hdnmaspumdwnrcdz
|
||||
wafpbgehbuzdgsnc
|
||||
tbtrfztsferdmhsy
|
||||
vusndcyjngtkrtmk
|
||||
ilqblestzxebcifh
|
||||
urfgjbjgzlrfsdlv
|
||||
aptcdvpsqwleqttn
|
||||
bigczjvzokvfofiw
|
||||
zjnjeufonyqgkbpx
|
||||
trcdebioegfqrrdi
|
||||
jrdvdriujlmbqewt
|
||||
jqrcmuxpwurdhaue
|
||||
yjlermsgruublkly
|
||||
zwarvgszuqeesuwq
|
||||
xthhhqzwvqiyctvs
|
||||
mzwwaxnbdxhajyyv
|
||||
nclsozlqrjvqifyi
|
||||
gcnyqmhezcqvksqw
|
||||
deuakiskeuwdfxwp
|
||||
tclkbhqqcydlgrrl
|
||||
qbpndlfjayowkcrx
|
||||
apjhkutpoiegnxfx
|
||||
oaupiimsplsvcsie
|
||||
sdmxrufyhztxzgmt
|
||||
ukfoinnlbqrgzdeh
|
||||
azosvwtcipqzckns
|
||||
mydyeqsimocdikzn
|
||||
itfmfjrclmglcrkc
|
||||
swknpgysfscdrnop
|
||||
shyyuvvldmqheuiv
|
||||
tljrjohwhhekyhle
|
||||
dayinwzuvzimvzjw
|
||||
qgylixuuervyylur
|
||||
klqqaiemurawmaaz
|
||||
hdmzgtxxjabplxvf
|
||||
xiivzelzdjjtkhnj
|
||||
ktgplkzblgxwrnvo
|
||||
gvbpyofzodnknytd
|
||||
lqhlmnmhakqeffqw
|
||||
ltzdbngrcxwuxecy
|
||||
obxnfjeebvovjcjz
|
||||
zexpwallpocrxpvp
|
||||
tjpkkmcqbbkxaiak
|
||||
qiedfixxgvciblih
|
||||
qcxkhghosuslbyih
|
||||
gnsfidwhzaxjufgm
|
||||
xrghwgvyjakkzidw
|
||||
tftftwedtecglavz
|
||||
wquqczzkzqrlfngr
|
||||
twibtkijpvzbsfro
|
||||
bmplypdsvzuhrjxp
|
||||
zanrfmestvqpwbuh
|
||||
zonrhfqowyimcukm
|
||||
kpvajjfmqpbhrjma
|
||||
kujzluicngigjbtp
|
||||
iusguantsrwxdjal
|
||||
kwxeuylcnszswahw
|
||||
visdhnkobxnemldu
|
||||
rogeadmmaicwtabl
|
||||
pxqycifbgevqudvs
|
||||
osaiozyvlyddylqr
|
||||
vffjxrolrpuxcatx
|
||||
jbmsetccdrywssjd
|
||||
qgxyhjfpbfifmvgc
|
||||
npejgalglldxjdhs
|
||||
mbbtqgmttastrlck
|
||||
whapaqwdtpkropek
|
||||
dulbdboxazfyjgkg
|
||||
xaymnudlozbykgow
|
||||
lebvqmxeaymkkfoy
|
||||
bmicnfuubkregouj
|
||||
dieatyxxxlvhneoj
|
||||
yglaapcsnsbuvrva
|
||||
bbpjaslqpzqcwkpk
|
||||
xehuznbayagrbhnd
|
||||
ikqmeovaurmqfuvr
|
||||
ylyokwuzxltvxmgv
|
||||
hqtfinrkllhqtoiz
|
||||
pjmhtigznoaejifx
|
||||
fqdbmowkjtmvvrmx
|
||||
uvqtqfoulvzozfxv
|
||||
rpajajukuxtchrjd
|
||||
sznucejifktvxdre
|
||||
ufvibsmoushmjbne
|
||||
xirdqoshngthfvax
|
||||
iafpkddchsgdqmzl
|
||||
vmualmlduipvykzh
|
||||
fnmuahmblwyceejb
|
||||
ilsaapnswfoymiov
|
||||
lenvylifraahaclv
|
||||
cukqxlipuyxedqfh
|
||||
zgwecslpniqvtvuz
|
||||
cdcdfpsxuyrhsmag
|
||||
dszjinhantnxgqra
|
||||
ioimwotsgnjeacgt
|
||||
dqcymnvjystbynhp
|
||||
yibaudyfefbfgunx
|
||||
cabslcvunjavqkbf
|
||||
goymzvmgkvlsmugf
|
||||
zxteiitpthzskjjx
|
||||
agnxcnaqhjhlurzs
|
||||
cvmgyxhhnykuxbmb
|
||||
cgqmjexydmvgwxpp
|
||||
sygjajofieojiuna
|
||||
clpvxbrbjvqfbzvu
|
||||
cbntswqynsdqnhyv
|
||||
bztpbtwbefiotkfa
|
||||
pnxccbgajvhyeybu
|
||||
asyzrvgzumtuissa
|
||||
facjyblvcqqginxa
|
||||
rvwnucnbsvberxuv
|
||||
ghrbeykzrxclasie
|
||||
ekujtselepgjtaql
|
||||
krtrzsmduhsifyiw
|
||||
ticjswvsnyrwhpnt
|
||||
clmjhsftkfjzwyke
|
||||
lbxlcixxcztddlam
|
||||
xhfeekmxgbloguri
|
||||
azxqwlucwhahtvep
|
||||
kitdjrwmockhksow
|
||||
keznwwcusgbtvfrs
|
||||
ljvzxoywcofgwajj
|
||||
vebjnhnkcfzbhrcw
|
||||
eqfcxkavstxcuels
|
||||
ldattkyawjrvcido
|
||||
bsqqeilshcwtqyil
|
||||
foqqsxahfiozcqrw
|
||||
liswfmuhzfbyzjhf
|
||||
sulbdcyzmolapfbs
|
||||
zuggzkelwxjpsgxb
|
||||
betioxrgtnhpivcw
|
||||
xmtbixstdipibhgs
|
||||
ttvurgqmulryyaji
|
||||
viobnljznzppfmxw
|
||||
qlzabfopydtxrlet
|
||||
tusvydegfxhaxolk
|
||||
thoufvvfjferxhwp
|
||||
cfyyzppfarjiilbs
|
||||
jwmhxtgafkkgseqs
|
||||
pqwuuaxbeklodwpt
|
||||
vndyveahdiwgkjyx
|
||||
ssrjgasfhdouwyoh
|
||||
thbavfcisgvvyekf
|
||||
yjdvxmubvqadgypa
|
||||
tlbmcxaelkouhsvu
|
||||
bonohfnlboxiezzr
|
||||
rktlxcbkhewyvcjl
|
||||
rsmoutcbcssodvsc
|
||||
qszdratuxcrhsvoh
|
||||
eypyfahpuzqwzwhi
|
||||
yhkrleqmqlmwdnio
|
||||
vpnvxusvmngsobmq
|
||||
hkzyhopvxrsimzys
|
||||
dblriiwnrvnhxykl
|
||||
xkriqxkrprjwpncs
|
||||
rcymltrbszhyhqti
|
||||
mzbvneplsnpiztzn
|
||||
vkqtnptgbqefvfoc
|
||||
nwdtfiaozkcjtlax
|
||||
crximadpvdaccrsm
|
||||
lrbajafxwwnxvbei
|
||||
rbexzesrytpwwmjf
|
||||
stxwjarildpnzfpg
|
||||
btamaihdivrhhrrv
|
||||
acqbucebpaulpotl
|
||||
dkjhzghxxtxgdpvm
|
||||
rsbzwsnvlpqzyjir
|
||||
mizypbwvpgqoiams
|
||||
nvrslorjpqaasudn
|
||||
wvexcpzmconqkbvk
|
||||
rfwfumhjwzrvdzam
|
||||
eaghdaqorkhdsmth
|
||||
gtuntmpqaivosewh
|
||||
nzlsmdgjrigghrmy
|
||||
dhuvxwobpzbuwjgk
|
||||
kkcuvbezftvkhebf
|
||||
aeediumxyljbuyqu
|
||||
rfkpqeekjezejtjc
|
||||
wkzasuyckmgwddwy
|
||||
eixpkpdhsjmynxhi
|
||||
elrlnndorggmmhmx
|
||||
ayxwhkxahljoxggy
|
||||
mtzvvwmwexkberaw
|
||||
evpktriyydxvdhpx
|
||||
otznecuqsfagruls
|
||||
vrdykpyebzyblnut
|
||||
cnriedolerlhbqjy
|
||||
uajaprnrrkvggqgx
|
||||
xdlxuguloojvskjq
|
||||
mfifrjamczjncuym
|
||||
otmgvsykuuxrluky
|
||||
oiuroieurpyejuvm
|
||||
@@ -0,0 +1,40 @@
|
||||
#[cfg(debug_assertions)]
|
||||
const FILENAME: &str = "example.txt";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const FILENAME: &str = "input.txt";
|
||||
|
||||
const VOWELS: &str = "aeiou";
|
||||
const FORBIDDEN: [&str; 4] = ["ab", "cd", "pq", "xy"];
|
||||
|
||||
fn main() {
|
||||
let data = std::fs::read_to_string(FILENAME).unwrap();
|
||||
|
||||
part_1_and_2(&data, is_nice_1);
|
||||
part_1_and_2(&data, is_nice_2);
|
||||
}
|
||||
|
||||
fn part_1_and_2<T: Fn(&&str) -> bool>(data: &str, f: T) {
|
||||
let sum = data.lines().filter(f).count();
|
||||
println!("{sum}");
|
||||
}
|
||||
|
||||
fn is_nice_1(s: &&str) -> bool {
|
||||
let vowel_count = s.chars().filter(|c| VOWELS.contains(*c)).count();
|
||||
|
||||
let double_letter = s.chars().zip(s.chars().skip(1)).any(|(a, b)| a == b);
|
||||
|
||||
let has_forbidden_tuple = s
|
||||
.chars()
|
||||
.zip(s.chars().skip(1))
|
||||
.map(|(a, b)| format!("{a}{b}"))
|
||||
.any(|tuple| FORBIDDEN.contains(&tuple.as_str()));
|
||||
|
||||
vowel_count >= 3 && double_letter && !has_forbidden_tuple
|
||||
}
|
||||
|
||||
fn is_nice_2(s: &&str) -> bool {
|
||||
let mut subrule_1 = false;
|
||||
let mut subrule_2 = false;
|
||||
|
||||
subrule_1 && subrule_2
|
||||
}
|
||||
Reference in new issue
Block a user