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