mirror of
https://github.com/Smaug123/AdventOfCode2021
synced 2025-10-05 15:58:40 +00:00
Day 6 (#2)
This commit is contained in:
@@ -11,7 +11,13 @@
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="..\Inputs\Day1.txt" />
|
||||
<EmbeddedResource Include="..\Inputs\Day2.txt" />
|
||||
<EmbeddedResource Include="..\Inputs\Day3.txt" />
|
||||
<EmbeddedResource Include="..\Inputs\Day4.txt" />
|
||||
<EmbeddedResource Include="..\Inputs\Day5.txt" />
|
||||
<EmbeddedResource Include="..\Inputs\Day6.txt" />
|
||||
<Compile Include="Day1.fs" />
|
||||
<Compile Include="Day6.fs" />
|
||||
<Compile Include="Program.fs" />
|
||||
</ItemGroup>
|
||||
|
||||
|
61
AdventOfCode2021/Day6.fs
Normal file
61
AdventOfCode2021/Day6.fs
Normal file
@@ -0,0 +1,61 @@
|
||||
namespace AdventOfCode
|
||||
|
||||
open System.Collections.Generic
|
||||
open AdventOfCode.Internals
|
||||
|
||||
[<RequireQualifiedAccess>]
|
||||
module Day6 =
|
||||
|
||||
let input () =
|
||||
Utils.readResource "Day6.txt"
|
||||
|> List.exactlyOne
|
||||
|> fun s -> s.Split ','
|
||||
|> Array.map int
|
||||
|> Array.toList
|
||||
|
||||
// The answer is defined by the following relation:
|
||||
// g(days) = (if days > 7 then g(days - 7) else 1) + (if days > 9 then g(days - 9) else 1)
|
||||
// where g is the number of fish given that the only existing fish is on day 0 of its cycle (that is, it's about
|
||||
// to spawn).
|
||||
|
||||
/// Memoise an arbitrary recursive function, expressed in a form that takes an explicit
|
||||
/// `recurse` function argument.
|
||||
/// (I did this for fun.)
|
||||
let memoise (f : ('a -> 'b) -> 'a -> 'b) : 'a -> 'b =
|
||||
let d = Dictionary<'a, 'b> ()
|
||||
|
||||
let rec answer (a : 'a) =
|
||||
match d.TryGetValue a with
|
||||
| false, _ ->
|
||||
let result = f answer a
|
||||
d.Add (a, result)
|
||||
result
|
||||
| true, v -> v
|
||||
|
||||
f answer
|
||||
|
||||
/// (If you don't want to memoise it, just don't!)
|
||||
let resolveUnmemoised (f : ('a -> 'b) -> 'a -> 'b) : 'a -> 'b =
|
||||
let rec answer a = f answer a
|
||||
f answer
|
||||
|
||||
let g : int -> uint64 =
|
||||
let go (recurse : int -> uint64) (i : int) =
|
||||
if i > 9 then
|
||||
recurse (i - 9) + recurse (i - 7)
|
||||
elif i > 7 then
|
||||
recurse (i - 7) + 1UL
|
||||
else
|
||||
2UL
|
||||
|
||||
memoise go
|
||||
|
||||
let part1 () =
|
||||
input ()
|
||||
|> List.map (fun i -> g (80 - i))
|
||||
|> List.sum
|
||||
|
||||
let part2 () =
|
||||
input ()
|
||||
|> List.map (fun i -> g (256 - i))
|
||||
|> List.sum
|
@@ -7,6 +7,9 @@ module Program =
|
||||
| "1" ->
|
||||
printfn $"{Day1.part1 ()}"
|
||||
printfn $"{Day1.part2 ()}"
|
||||
| "6" ->
|
||||
printfn $"{Day6.part1 ()}"
|
||||
printfn $"{Day6.part2 ()}"
|
||||
| s -> failwithf $"Unexpected argument: %s{s}"
|
||||
|
||||
0
|
||||
|
1000
Inputs/Day2.txt
Normal file
1000
Inputs/Day2.txt
Normal file
File diff suppressed because it is too large
Load Diff
1000
Inputs/Day3.txt
Normal file
1000
Inputs/Day3.txt
Normal file
File diff suppressed because it is too large
Load Diff
601
Inputs/Day4.txt
Normal file
601
Inputs/Day4.txt
Normal file
@@ -0,0 +1,601 @@
|
||||
27,14,70,7,85,66,65,57,68,23,33,78,4,84,25,18,43,71,76,61,34,82,93,74,26,15,83,64,2,35,19,97,32,47,6,51,99,20,77,75,56,73,80,86,55,36,13,95,52,63,79,72,9,10,16,8,69,11,50,54,81,22,45,1,12,88,44,17,62,0,96,94,31,90,39,92,37,40,5,98,24,38,46,21,30,49,41,87,91,60,48,29,59,89,3,42,58,53,67,28
|
||||
|
||||
31 23 52 26 8
|
||||
27 89 37 80 46
|
||||
97 19 63 34 79
|
||||
13 59 45 12 73
|
||||
42 25 22 6 39
|
||||
|
||||
27 71 24 3 0
|
||||
79 42 32 72 62
|
||||
99 52 11 92 33
|
||||
38 22 16 44 39
|
||||
35 26 76 49 58
|
||||
|
||||
39 19 82 53 57
|
||||
52 98 69 77 23
|
||||
1 40 18 66 83
|
||||
34 85 28 48 16
|
||||
15 93 38 96 27
|
||||
|
||||
74 50 88 84 99
|
||||
34 2 11 25 17
|
||||
57 4 19 83 1
|
||||
59 77 42 36 33
|
||||
73 22 23 37 55
|
||||
|
||||
98 91 56 84 78
|
||||
45 21 24 83 40
|
||||
46 58 8 67 4
|
||||
33 97 55 7 86
|
||||
2 68 64 27 69
|
||||
|
||||
68 29 14 49 26
|
||||
4 21 87 71 32
|
||||
58 5 17 46 93
|
||||
45 96 8 83 2
|
||||
78 91 9 20 42
|
||||
|
||||
49 81 19 48 37
|
||||
38 23 45 82 92
|
||||
93 99 67 66 42
|
||||
40 74 25 56 16
|
||||
21 47 26 75 61
|
||||
|
||||
53 66 72 30 34
|
||||
55 82 77 6 92
|
||||
60 56 8 22 88
|
||||
5 71 49 29 74
|
||||
28 2 32 84 73
|
||||
|
||||
52 31 24 68 41
|
||||
48 82 19 29 65
|
||||
51 91 97 39 80
|
||||
3 55 43 40 38
|
||||
20 89 53 45 75
|
||||
|
||||
29 74 19 89 18
|
||||
32 88 93 46 63
|
||||
91 4 94 64 5
|
||||
57 54 49 36 40
|
||||
97 81 39 77 1
|
||||
|
||||
7 57 94 84 39
|
||||
92 3 28 15 75
|
||||
88 45 65 81 63
|
||||
86 4 89 37 71
|
||||
8 13 66 42 85
|
||||
|
||||
60 66 35 47 98
|
||||
96 27 40 51 39
|
||||
3 64 25 28 74
|
||||
58 17 97 59 29
|
||||
95 31 18 44 37
|
||||
|
||||
3 31 97 85 71
|
||||
79 82 22 61 98
|
||||
87 14 17 66 75
|
||||
36 89 88 83 63
|
||||
44 8 81 25 48
|
||||
|
||||
73 84 28 90 94
|
||||
25 19 44 10 23
|
||||
8 59 17 9 93
|
||||
20 77 97 64 6
|
||||
98 82 27 70 91
|
||||
|
||||
18 51 16 99 2
|
||||
58 22 89 13 19
|
||||
39 66 91 8 32
|
||||
49 24 85 94 42
|
||||
45 70 10 86 4
|
||||
|
||||
23 81 66 13 34
|
||||
25 80 97 5 42
|
||||
79 35 2 78 9
|
||||
0 6 91 94 45
|
||||
21 90 76 50 56
|
||||
|
||||
50 92 2 96 75
|
||||
85 82 80 97 31
|
||||
61 35 55 27 56
|
||||
74 42 9 29 90
|
||||
86 15 88 47 1
|
||||
|
||||
18 20 54 92 62
|
||||
45 22 32 61 75
|
||||
1 38 50 81 42
|
||||
82 4 21 77 65
|
||||
27 51 56 39 48
|
||||
|
||||
36 10 62 28 70
|
||||
94 99 34 54 6
|
||||
15 1 41 13 12
|
||||
92 52 2 63 82
|
||||
90 64 29 69 32
|
||||
|
||||
23 77 33 90 17
|
||||
45 78 5 67 28
|
||||
57 73 89 81 21
|
||||
49 64 37 15 14
|
||||
7 59 4 43 16
|
||||
|
||||
81 92 25 28 90
|
||||
93 72 43 94 26
|
||||
24 9 13 74 10
|
||||
21 2 36 32 51
|
||||
87 97 55 86 71
|
||||
|
||||
82 71 99 17 90
|
||||
69 95 65 55 10
|
||||
9 92 39 62 78
|
||||
59 13 61 24 44
|
||||
8 31 58 0 57
|
||||
|
||||
17 83 55 99 27
|
||||
79 4 33 76 7
|
||||
81 43 44 49 72
|
||||
2 48 97 20 77
|
||||
47 60 35 16 63
|
||||
|
||||
93 95 94 1 98
|
||||
61 57 84 55 22
|
||||
85 40 65 46 59
|
||||
21 15 63 77 7
|
||||
13 99 49 3 96
|
||||
|
||||
8 21 14 45 41
|
||||
65 63 82 62 28
|
||||
91 44 22 79 96
|
||||
20 75 86 3 26
|
||||
74 11 42 59 36
|
||||
|
||||
5 52 43 92 99
|
||||
46 63 10 45 81
|
||||
13 66 21 32 89
|
||||
25 28 96 40 88
|
||||
27 18 31 73 34
|
||||
|
||||
3 26 43 32 36
|
||||
68 87 67 65 99
|
||||
73 61 20 90 7
|
||||
21 52 2 82 10
|
||||
58 49 56 16 80
|
||||
|
||||
97 25 93 63 32
|
||||
87 14 5 22 76
|
||||
89 92 91 3 51
|
||||
0 24 95 69 20
|
||||
96 11 10 1 55
|
||||
|
||||
95 86 44 75 70
|
||||
59 76 45 2 99
|
||||
1 34 71 81 41
|
||||
87 14 33 84 96
|
||||
8 38 9 82 68
|
||||
|
||||
27 71 70 75 76
|
||||
25 87 2 79 96
|
||||
20 88 50 37 32
|
||||
48 94 63 86 22
|
||||
15 6 34 78 59
|
||||
|
||||
30 89 51 31 77
|
||||
74 10 86 71 84
|
||||
29 54 58 44 5
|
||||
11 90 26 50 63
|
||||
64 62 20 40 46
|
||||
|
||||
37 9 46 23 31
|
||||
68 21 25 36 90
|
||||
17 33 6 50 30
|
||||
11 89 20 47 60
|
||||
26 59 34 62 77
|
||||
|
||||
84 52 40 97 7
|
||||
88 30 42 58 94
|
||||
64 10 2 90 83
|
||||
44 35 77 91 47
|
||||
14 74 9 78 53
|
||||
|
||||
86 14 0 39 24
|
||||
87 69 58 8 73
|
||||
88 74 27 40 51
|
||||
63 54 55 93 61
|
||||
16 66 15 21 48
|
||||
|
||||
43 70 9 81 42
|
||||
36 54 99 34 95
|
||||
98 19 90 25 44
|
||||
69 56 18 77 49
|
||||
58 16 67 75 57
|
||||
|
||||
36 44 14 98 23
|
||||
31 5 83 46 3
|
||||
45 21 41 11 60
|
||||
33 81 88 92 65
|
||||
13 51 48 59 71
|
||||
|
||||
12 5 70 87 32
|
||||
42 18 90 73 88
|
||||
68 29 76 38 55
|
||||
67 62 15 77 34
|
||||
39 27 51 54 19
|
||||
|
||||
87 8 92 93 88
|
||||
77 54 15 1 43
|
||||
35 97 26 21 29
|
||||
13 46 96 69 47
|
||||
51 38 91 32 63
|
||||
|
||||
73 99 30 15 16
|
||||
42 58 21 88 44
|
||||
45 13 27 68 9
|
||||
36 6 81 53 5
|
||||
78 76 11 60 1
|
||||
|
||||
57 76 50 78 31
|
||||
45 42 68 53 16
|
||||
9 88 89 19 21
|
||||
96 61 97 69 34
|
||||
98 87 33 82 0
|
||||
|
||||
4 16 89 57 64
|
||||
46 75 77 65 23
|
||||
71 42 96 52 38
|
||||
1 21 93 0 35
|
||||
59 80 53 36 58
|
||||
|
||||
97 62 35 1 88
|
||||
98 60 17 45 94
|
||||
12 43 65 23 19
|
||||
71 52 3 40 59
|
||||
50 76 61 20 22
|
||||
|
||||
92 65 38 93 13
|
||||
55 26 10 46 29
|
||||
85 23 19 74 34
|
||||
60 14 27 36 18
|
||||
53 4 52 49 17
|
||||
|
||||
99 56 93 70 28
|
||||
25 0 77 80 57
|
||||
91 50 72 76 23
|
||||
53 58 95 78 59
|
||||
75 85 90 44 9
|
||||
|
||||
30 8 5 60 6
|
||||
28 35 59 70 96
|
||||
20 99 98 81 79
|
||||
94 78 27 71 4
|
||||
7 34 43 46 51
|
||||
|
||||
93 65 22 69 33
|
||||
92 49 75 35 11
|
||||
58 39 62 86 83
|
||||
64 4 76 48 82
|
||||
74 1 56 95 31
|
||||
|
||||
1 78 98 90 55
|
||||
80 14 36 99 7
|
||||
85 8 10 9 92
|
||||
76 11 40 70 62
|
||||
43 53 74 35 58
|
||||
|
||||
46 78 35 28 49
|
||||
84 73 65 25 34
|
||||
40 59 66 36 67
|
||||
16 22 29 0 45
|
||||
20 56 39 88 91
|
||||
|
||||
32 58 35 25 79
|
||||
78 94 57 38 14
|
||||
89 87 68 48 76
|
||||
7 67 40 51 33
|
||||
95 31 43 93 92
|
||||
|
||||
38 21 82 31 23
|
||||
54 16 77 37 42
|
||||
73 99 7 34 90
|
||||
71 26 5 91 52
|
||||
22 27 47 85 62
|
||||
|
||||
2 86 28 37 55
|
||||
1 82 9 36 31
|
||||
52 98 89 30 60
|
||||
13 17 63 38 57
|
||||
73 50 42 20 12
|
||||
|
||||
56 3 67 62 35
|
||||
59 39 19 22 27
|
||||
21 58 57 41 54
|
||||
75 13 82 50 32
|
||||
23 5 99 66 10
|
||||
|
||||
7 19 45 66 78
|
||||
38 57 40 73 87
|
||||
58 30 99 53 83
|
||||
64 1 8 56 95
|
||||
70 77 16 18 82
|
||||
|
||||
72 83 95 37 35
|
||||
54 59 92 21 79
|
||||
7 81 86 29 41
|
||||
52 99 42 57 71
|
||||
3 15 75 34 77
|
||||
|
||||
7 70 5 69 4
|
||||
34 60 40 73 6
|
||||
74 54 67 32 38
|
||||
93 62 17 51 86
|
||||
57 88 99 3 16
|
||||
|
||||
42 74 11 34 7
|
||||
82 47 71 31 58
|
||||
69 23 43 4 64
|
||||
32 19 98 93 41
|
||||
63 97 8 85 48
|
||||
|
||||
63 54 34 38 86
|
||||
4 27 15 49 0
|
||||
61 77 53 98 74
|
||||
62 23 88 97 37
|
||||
93 28 25 50 13
|
||||
|
||||
56 82 41 27 79
|
||||
23 31 64 7 65
|
||||
52 98 93 16 57
|
||||
88 49 10 11 62
|
||||
43 95 53 51 83
|
||||
|
||||
41 10 87 54 86
|
||||
19 22 13 40 17
|
||||
37 27 45 29 63
|
||||
83 85 81 90 7
|
||||
57 88 47 66 56
|
||||
|
||||
67 44 54 88 89
|
||||
20 46 61 28 92
|
||||
86 49 60 83 95
|
||||
42 78 97 51 96
|
||||
11 62 4 26 31
|
||||
|
||||
18 68 87 26 70
|
||||
62 84 11 33 90
|
||||
0 45 66 83 6
|
||||
20 19 27 44 55
|
||||
52 8 5 7 3
|
||||
|
||||
54 94 88 76 92
|
||||
13 98 22 33 26
|
||||
95 62 53 81 24
|
||||
29 69 15 87 25
|
||||
61 40 84 90 93
|
||||
|
||||
7 31 3 28 46
|
||||
20 51 21 18 38
|
||||
30 92 39 70 61
|
||||
27 88 35 96 74
|
||||
23 5 66 11 42
|
||||
|
||||
40 61 90 57 54
|
||||
41 14 99 62 59
|
||||
92 10 48 81 52
|
||||
22 29 77 18 87
|
||||
31 79 25 94 13
|
||||
|
||||
17 26 44 98 57
|
||||
74 83 51 14 11
|
||||
76 91 96 64 33
|
||||
43 45 92 72 27
|
||||
66 3 28 20 40
|
||||
|
||||
88 82 44 71 55
|
||||
83 47 51 76 24
|
||||
86 19 42 34 99
|
||||
30 31 87 48 62
|
||||
98 53 68 9 21
|
||||
|
||||
3 31 6 41 61
|
||||
24 77 81 96 44
|
||||
78 73 1 98 11
|
||||
40 80 27 65 92
|
||||
62 67 2 30 10
|
||||
|
||||
78 46 50 65 56
|
||||
84 16 32 58 86
|
||||
22 12 54 99 35
|
||||
9 43 55 10 94
|
||||
66 81 59 92 76
|
||||
|
||||
78 3 55 23 83
|
||||
13 42 94 91 22
|
||||
14 37 31 67 71
|
||||
8 61 57 34 43
|
||||
74 50 0 39 65
|
||||
|
||||
78 16 13 91 34
|
||||
14 74 86 3 97
|
||||
12 89 58 65 51
|
||||
29 57 48 44 93
|
||||
95 1 42 39 92
|
||||
|
||||
93 96 16 85 25
|
||||
59 3 70 19 17
|
||||
21 84 58 38 86
|
||||
57 10 35 95 79
|
||||
81 44 73 63 9
|
||||
|
||||
22 1 96 7 93
|
||||
40 49 2 4 66
|
||||
87 21 17 32 48
|
||||
44 28 42 99 26
|
||||
69 8 85 86 75
|
||||
|
||||
21 31 37 87 28
|
||||
89 43 74 83 57
|
||||
95 29 92 88 35
|
||||
94 25 97 81 50
|
||||
15 19 73 45 63
|
||||
|
||||
92 62 67 95 57
|
||||
30 8 4 39 64
|
||||
99 31 70 63 96
|
||||
25 53 24 93 35
|
||||
34 51 82 91 28
|
||||
|
||||
41 30 20 56 46
|
||||
16 32 98 60 35
|
||||
67 9 43 42 88
|
||||
78 90 71 5 29
|
||||
49 31 37 63 18
|
||||
|
||||
80 40 88 5 62
|
||||
3 6 74 71 97
|
||||
19 58 63 59 38
|
||||
50 64 34 68 45
|
||||
25 30 21 33 83
|
||||
|
||||
10 65 67 17 50
|
||||
21 51 18 68 59
|
||||
29 78 77 99 76
|
||||
62 35 96 7 95
|
||||
82 53 42 49 69
|
||||
|
||||
74 65 89 6 1
|
||||
18 30 72 75 24
|
||||
60 50 52 55 82
|
||||
68 99 4 61 22
|
||||
9 37 84 57 87
|
||||
|
||||
96 85 56 72 2
|
||||
9 38 98 12 4
|
||||
34 45 74 97 86
|
||||
18 94 64 70 68
|
||||
91 41 58 39 66
|
||||
|
||||
34 13 26 80 29
|
||||
0 4 21 60 90
|
||||
39 73 12 2 19
|
||||
64 44 61 88 45
|
||||
59 50 8 91 49
|
||||
|
||||
34 85 55 2 75
|
||||
10 15 89 12 63
|
||||
90 29 87 73 71
|
||||
38 17 84 45 9
|
||||
97 98 77 23 61
|
||||
|
||||
47 43 22 58 1
|
||||
63 44 2 94 99
|
||||
33 81 51 49 13
|
||||
38 86 42 91 23
|
||||
7 67 68 39 84
|
||||
|
||||
4 26 12 38 41
|
||||
43 16 88 71 99
|
||||
50 24 19 77 98
|
||||
23 73 44 10 51
|
||||
56 42 30 52 59
|
||||
|
||||
57 16 9 62 27
|
||||
26 65 56 10 82
|
||||
0 74 78 12 99
|
||||
77 18 38 5 37
|
||||
7 60 40 90 23
|
||||
|
||||
14 69 18 51 8
|
||||
21 79 60 36 12
|
||||
68 44 59 45 16
|
||||
90 50 85 25 70
|
||||
91 31 30 54 26
|
||||
|
||||
24 40 51 72 63
|
||||
31 60 62 25 96
|
||||
9 44 35 28 91
|
||||
97 4 34 81 2
|
||||
61 68 94 52 86
|
||||
|
||||
0 57 95 88 94
|
||||
36 38 25 35 19
|
||||
13 6 8 61 98
|
||||
45 85 86 69 97
|
||||
41 32 7 15 59
|
||||
|
||||
41 82 19 29 34
|
||||
44 96 6 91 76
|
||||
69 21 32 94 98
|
||||
4 10 88 30 2
|
||||
8 74 56 65 99
|
||||
|
||||
36 91 73 15 54
|
||||
62 55 40 27 44
|
||||
11 60 95 61 46
|
||||
31 32 21 41 35
|
||||
74 86 83 89 79
|
||||
|
||||
2 96 94 82 68
|
||||
39 83 49 30 15
|
||||
62 11 86 99 59
|
||||
51 80 12 72 58
|
||||
87 66 98 53 29
|
||||
|
||||
44 71 18 63 85
|
||||
11 75 60 66 13
|
||||
36 9 94 57 8
|
||||
10 12 32 3 86
|
||||
4 29 54 70 21
|
||||
|
||||
27 33 76 83 67
|
||||
77 29 65 39 44
|
||||
52 34 25 93 64
|
||||
35 4 57 92 84
|
||||
41 51 88 96 0
|
||||
|
||||
21 91 82 3 26
|
||||
23 8 36 20 73
|
||||
54 39 60 34 57
|
||||
49 99 97 69 43
|
||||
41 93 95 80 63
|
||||
|
||||
73 77 4 9 22
|
||||
17 33 15 86 79
|
||||
38 16 99 98 30
|
||||
64 92 76 50 68
|
||||
83 85 52 87 88
|
||||
|
||||
57 53 13 36 76
|
||||
7 10 91 3 22
|
||||
8 84 56 73 59
|
||||
62 80 85 38 33
|
||||
68 97 47 14 96
|
||||
|
||||
36 8 98 43 70
|
||||
85 95 31 1 51
|
||||
33 41 78 89 56
|
||||
76 16 15 34 82
|
||||
12 18 39 4 3
|
||||
|
||||
98 49 41 30 95
|
||||
68 89 81 48 84
|
||||
15 19 90 66 14
|
||||
32 1 88 34 64
|
||||
73 65 6 20 86
|
||||
|
||||
22 18 13 74 34
|
||||
75 4 60 88 46
|
||||
25 97 54 94 91
|
||||
42 67 40 11 81
|
||||
5 12 49 48 15
|
||||
|
||||
82 91 18 73 57
|
||||
97 50 34 16 66
|
||||
29 43 81 20 15
|
||||
19 44 85 4 32
|
||||
90 58 39 53 42
|
||||
|
||||
50 53 83 10 0
|
||||
93 16 84 23 13
|
||||
89 63 75 69 51
|
||||
65 35 67 56 70
|
||||
4 37 29 47 38
|
500
Inputs/Day5.txt
Normal file
500
Inputs/Day5.txt
Normal file
@@ -0,0 +1,500 @@
|
||||
959,103 -> 139,923
|
||||
899,63 -> 899,53
|
||||
591,871 -> 364,644
|
||||
739,913 -> 310,484
|
||||
460,309 -> 460,705
|
||||
351,389 -> 351,837
|
||||
420,55 -> 420,541
|
||||
916,520 -> 382,520
|
||||
136,604 -> 295,604
|
||||
343,59 -> 142,59
|
||||
951,206 -> 806,206
|
||||
984,950 -> 61,27
|
||||
739,388 -> 988,388
|
||||
374,370 -> 644,370
|
||||
403,504 -> 798,899
|
||||
943,535 -> 229,535
|
||||
149,227 -> 583,661
|
||||
62,126 -> 62,352
|
||||
131,391 -> 131,717
|
||||
254,944 -> 254,220
|
||||
572,111 -> 572,47
|
||||
336,249 -> 830,743
|
||||
898,858 -> 203,163
|
||||
203,320 -> 825,942
|
||||
19,318 -> 19,120
|
||||
740,432 -> 740,39
|
||||
591,383 -> 220,754
|
||||
445,592 -> 19,592
|
||||
202,370 -> 837,370
|
||||
473,916 -> 600,789
|
||||
118,955 -> 884,189
|
||||
377,376 -> 533,532
|
||||
160,264 -> 160,62
|
||||
627,572 -> 627,679
|
||||
217,690 -> 217,629
|
||||
685,323 -> 866,504
|
||||
391,309 -> 493,207
|
||||
872,776 -> 357,776
|
||||
116,326 -> 116,426
|
||||
82,900 -> 832,900
|
||||
594,862 -> 594,593
|
||||
802,636 -> 802,223
|
||||
862,226 -> 862,787
|
||||
313,573 -> 834,573
|
||||
145,631 -> 13,499
|
||||
545,433 -> 420,308
|
||||
427,623 -> 427,808
|
||||
898,120 -> 511,120
|
||||
859,811 -> 859,28
|
||||
715,958 -> 715,893
|
||||
115,234 -> 484,234
|
||||
125,253 -> 50,253
|
||||
737,265 -> 158,265
|
||||
523,965 -> 523,983
|
||||
118,51 -> 118,766
|
||||
455,774 -> 455,357
|
||||
680,881 -> 925,881
|
||||
191,186 -> 187,186
|
||||
821,629 -> 792,658
|
||||
397,906 -> 397,962
|
||||
988,811 -> 988,427
|
||||
91,733 -> 519,733
|
||||
46,172 -> 566,172
|
||||
740,619 -> 880,759
|
||||
609,465 -> 609,702
|
||||
289,211 -> 289,620
|
||||
622,135 -> 622,929
|
||||
113,53 -> 872,53
|
||||
559,713 -> 559,132
|
||||
894,237 -> 211,920
|
||||
237,259 -> 237,39
|
||||
738,542 -> 976,542
|
||||
163,34 -> 525,34
|
||||
681,672 -> 264,255
|
||||
37,827 -> 722,827
|
||||
60,803 -> 514,349
|
||||
433,866 -> 433,257
|
||||
379,493 -> 379,643
|
||||
697,588 -> 192,83
|
||||
875,646 -> 318,89
|
||||
634,983 -> 634,111
|
||||
636,69 -> 636,41
|
||||
911,780 -> 701,570
|
||||
792,71 -> 956,71
|
||||
682,338 -> 608,412
|
||||
257,768 -> 450,575
|
||||
112,25 -> 795,708
|
||||
730,86 -> 730,65
|
||||
966,785 -> 789,608
|
||||
390,263 -> 483,356
|
||||
90,852 -> 90,471
|
||||
507,914 -> 769,914
|
||||
803,535 -> 803,245
|
||||
710,787 -> 570,787
|
||||
138,842 -> 270,710
|
||||
862,988 -> 862,656
|
||||
56,408 -> 849,408
|
||||
16,10 -> 979,973
|
||||
982,14 -> 12,984
|
||||
647,915 -> 38,306
|
||||
797,487 -> 19,487
|
||||
539,933 -> 924,933
|
||||
509,734 -> 176,734
|
||||
813,505 -> 976,505
|
||||
474,987 -> 474,896
|
||||
21,200 -> 164,200
|
||||
986,973 -> 31,18
|
||||
919,830 -> 111,22
|
||||
32,574 -> 456,150
|
||||
743,595 -> 842,595
|
||||
623,306 -> 722,306
|
||||
878,367 -> 519,367
|
||||
924,221 -> 924,231
|
||||
86,950 -> 773,263
|
||||
950,248 -> 537,248
|
||||
149,155 -> 962,968
|
||||
449,568 -> 179,568
|
||||
186,304 -> 868,986
|
||||
921,320 -> 639,602
|
||||
602,262 -> 602,500
|
||||
602,33 -> 602,248
|
||||
380,731 -> 423,774
|
||||
535,110 -> 638,110
|
||||
552,317 -> 552,75
|
||||
173,667 -> 173,847
|
||||
707,480 -> 195,480
|
||||
833,398 -> 267,964
|
||||
276,716 -> 413,716
|
||||
342,816 -> 922,816
|
||||
24,184 -> 715,875
|
||||
762,330 -> 717,285
|
||||
718,886 -> 718,551
|
||||
707,834 -> 707,704
|
||||
479,578 -> 161,896
|
||||
145,297 -> 145,435
|
||||
760,651 -> 536,875
|
||||
954,629 -> 954,816
|
||||
305,949 -> 305,919
|
||||
55,132 -> 55,233
|
||||
469,85 -> 439,85
|
||||
653,990 -> 536,990
|
||||
876,531 -> 432,87
|
||||
698,207 -> 698,672
|
||||
11,70 -> 766,825
|
||||
591,357 -> 30,918
|
||||
697,987 -> 697,823
|
||||
610,903 -> 370,663
|
||||
319,678 -> 319,504
|
||||
337,150 -> 309,150
|
||||
876,57 -> 311,57
|
||||
673,268 -> 345,596
|
||||
895,364 -> 518,741
|
||||
327,662 -> 941,48
|
||||
77,709 -> 110,742
|
||||
194,78 -> 661,78
|
||||
587,24 -> 825,24
|
||||
503,317 -> 719,317
|
||||
459,632 -> 704,387
|
||||
717,292 -> 835,292
|
||||
912,927 -> 72,87
|
||||
510,527 -> 146,527
|
||||
336,771 -> 336,266
|
||||
566,961 -> 496,961
|
||||
969,335 -> 122,335
|
||||
925,443 -> 925,397
|
||||
316,812 -> 606,812
|
||||
815,795 -> 116,795
|
||||
169,36 -> 354,36
|
||||
358,274 -> 389,274
|
||||
302,147 -> 839,684
|
||||
762,372 -> 972,372
|
||||
172,721 -> 682,211
|
||||
265,150 -> 248,167
|
||||
753,559 -> 307,559
|
||||
823,121 -> 823,126
|
||||
498,856 -> 498,135
|
||||
75,977 -> 75,381
|
||||
541,297 -> 541,320
|
||||
735,108 -> 866,108
|
||||
434,907 -> 868,907
|
||||
915,959 -> 255,959
|
||||
967,666 -> 967,209
|
||||
361,600 -> 361,222
|
||||
314,580 -> 314,497
|
||||
175,989 -> 523,641
|
||||
957,97 -> 311,743
|
||||
956,227 -> 12,227
|
||||
95,364 -> 95,742
|
||||
857,141 -> 193,805
|
||||
388,651 -> 468,731
|
||||
582,177 -> 324,177
|
||||
68,272 -> 68,720
|
||||
543,490 -> 910,490
|
||||
508,281 -> 902,281
|
||||
823,380 -> 823,296
|
||||
23,10 -> 946,933
|
||||
813,70 -> 813,450
|
||||
881,893 -> 598,893
|
||||
535,781 -> 973,781
|
||||
80,890 -> 909,61
|
||||
604,630 -> 307,927
|
||||
836,917 -> 184,917
|
||||
76,727 -> 10,727
|
||||
727,235 -> 727,578
|
||||
629,80 -> 892,80
|
||||
110,655 -> 663,102
|
||||
985,12 -> 11,986
|
||||
830,656 -> 830,761
|
||||
660,869 -> 660,543
|
||||
381,340 -> 381,562
|
||||
392,735 -> 417,735
|
||||
855,24 -> 320,24
|
||||
801,669 -> 278,146
|
||||
730,964 -> 107,964
|
||||
523,158 -> 385,20
|
||||
27,833 -> 27,987
|
||||
569,707 -> 500,707
|
||||
527,732 -> 527,424
|
||||
74,88 -> 273,287
|
||||
143,974 -> 143,735
|
||||
247,388 -> 813,954
|
||||
577,14 -> 945,382
|
||||
49,43 -> 953,947
|
||||
332,210 -> 332,143
|
||||
69,280 -> 949,280
|
||||
25,923 -> 904,44
|
||||
306,569 -> 306,470
|
||||
158,273 -> 113,228
|
||||
771,355 -> 694,278
|
||||
515,115 -> 245,385
|
||||
427,381 -> 427,729
|
||||
16,987 -> 987,16
|
||||
319,463 -> 319,234
|
||||
854,977 -> 66,189
|
||||
794,194 -> 794,183
|
||||
576,65 -> 576,843
|
||||
37,964 -> 734,964
|
||||
740,920 -> 740,877
|
||||
245,487 -> 245,957
|
||||
404,794 -> 853,794
|
||||
660,656 -> 660,756
|
||||
921,605 -> 127,605
|
||||
650,894 -> 916,894
|
||||
968,893 -> 481,406
|
||||
986,979 -> 21,14
|
||||
154,303 -> 498,647
|
||||
720,338 -> 229,338
|
||||
62,936 -> 62,897
|
||||
55,820 -> 55,923
|
||||
812,31 -> 551,31
|
||||
338,466 -> 951,466
|
||||
663,492 -> 775,604
|
||||
449,602 -> 39,602
|
||||
44,403 -> 44,144
|
||||
58,62 -> 339,62
|
||||
713,730 -> 713,502
|
||||
704,525 -> 976,797
|
||||
372,709 -> 372,680
|
||||
709,387 -> 153,387
|
||||
922,103 -> 615,103
|
||||
629,839 -> 121,839
|
||||
206,722 -> 529,722
|
||||
232,556 -> 422,746
|
||||
300,470 -> 300,726
|
||||
376,820 -> 622,574
|
||||
834,25 -> 255,604
|
||||
271,200 -> 271,875
|
||||
804,934 -> 872,934
|
||||
900,753 -> 900,632
|
||||
604,323 -> 604,70
|
||||
890,911 -> 890,41
|
||||
464,169 -> 812,169
|
||||
850,196 -> 850,903
|
||||
34,574 -> 34,54
|
||||
718,59 -> 462,315
|
||||
431,923 -> 737,923
|
||||
433,573 -> 433,420
|
||||
297,478 -> 297,775
|
||||
756,545 -> 544,545
|
||||
247,708 -> 247,702
|
||||
736,835 -> 173,272
|
||||
319,85 -> 319,827
|
||||
931,775 -> 683,775
|
||||
292,315 -> 451,315
|
||||
397,435 -> 380,435
|
||||
987,978 -> 82,73
|
||||
227,349 -> 227,724
|
||||
349,741 -> 899,191
|
||||
965,325 -> 765,125
|
||||
849,306 -> 88,306
|
||||
516,548 -> 516,902
|
||||
919,395 -> 568,395
|
||||
736,507 -> 192,507
|
||||
960,782 -> 196,18
|
||||
431,413 -> 510,492
|
||||
911,696 -> 911,830
|
||||
888,225 -> 174,225
|
||||
57,790 -> 57,953
|
||||
858,399 -> 119,399
|
||||
59,302 -> 290,302
|
||||
456,907 -> 456,599
|
||||
374,743 -> 374,565
|
||||
183,107 -> 183,171
|
||||
58,699 -> 288,699
|
||||
886,970 -> 109,193
|
||||
940,395 -> 806,261
|
||||
781,480 -> 596,665
|
||||
456,724 -> 265,724
|
||||
414,406 -> 299,521
|
||||
115,898 -> 115,863
|
||||
34,543 -> 34,496
|
||||
900,843 -> 900,457
|
||||
165,209 -> 189,209
|
||||
976,627 -> 539,190
|
||||
252,202 -> 137,202
|
||||
584,339 -> 550,373
|
||||
580,153 -> 380,353
|
||||
232,412 -> 650,830
|
||||
910,833 -> 88,11
|
||||
418,245 -> 829,245
|
||||
298,823 -> 907,214
|
||||
91,876 -> 495,876
|
||||
315,874 -> 650,539
|
||||
907,635 -> 365,635
|
||||
339,313 -> 320,313
|
||||
362,435 -> 362,938
|
||||
152,664 -> 152,391
|
||||
253,210 -> 272,210
|
||||
216,396 -> 216,726
|
||||
852,912 -> 15,75
|
||||
882,828 -> 689,828
|
||||
674,533 -> 674,523
|
||||
469,719 -> 469,79
|
||||
733,169 -> 665,101
|
||||
734,632 -> 717,632
|
||||
615,565 -> 615,114
|
||||
979,720 -> 243,720
|
||||
827,125 -> 827,919
|
||||
605,419 -> 601,419
|
||||
749,13 -> 433,329
|
||||
990,902 -> 990,843
|
||||
186,679 -> 186,457
|
||||
374,796 -> 736,796
|
||||
133,867 -> 133,801
|
||||
757,622 -> 812,567
|
||||
351,179 -> 351,509
|
||||
214,748 -> 575,748
|
||||
177,903 -> 861,219
|
||||
747,981 -> 747,64
|
||||
588,125 -> 588,557
|
||||
464,338 -> 769,338
|
||||
645,669 -> 125,149
|
||||
579,352 -> 138,352
|
||||
77,605 -> 520,605
|
||||
698,816 -> 698,917
|
||||
112,943 -> 112,834
|
||||
731,720 -> 724,720
|
||||
887,440 -> 976,351
|
||||
676,301 -> 676,741
|
||||
870,732 -> 870,648
|
||||
250,826 -> 413,826
|
||||
399,720 -> 543,864
|
||||
834,93 -> 468,459
|
||||
415,475 -> 415,641
|
||||
793,415 -> 47,415
|
||||
365,476 -> 365,31
|
||||
195,154 -> 813,154
|
||||
503,605 -> 773,605
|
||||
553,121 -> 851,121
|
||||
25,420 -> 423,818
|
||||
943,110 -> 258,110
|
||||
775,436 -> 826,436
|
||||
16,161 -> 16,889
|
||||
702,555 -> 920,555
|
||||
589,858 -> 533,802
|
||||
932,404 -> 932,539
|
||||
647,275 -> 647,962
|
||||
87,179 -> 326,179
|
||||
931,588 -> 931,287
|
||||
868,96 -> 557,96
|
||||
879,28 -> 875,28
|
||||
375,132 -> 287,44
|
||||
484,352 -> 644,512
|
||||
448,566 -> 448,214
|
||||
734,460 -> 717,460
|
||||
550,379 -> 550,674
|
||||
964,184 -> 820,328
|
||||
167,504 -> 387,504
|
||||
594,777 -> 952,777
|
||||
328,712 -> 837,712
|
||||
600,773 -> 546,773
|
||||
955,954 -> 82,81
|
||||
863,790 -> 863,86
|
||||
831,773 -> 32,773
|
||||
987,11 -> 19,979
|
||||
901,878 -> 901,177
|
||||
427,341 -> 721,635
|
||||
690,835 -> 567,835
|
||||
557,724 -> 14,181
|
||||
591,20 -> 205,406
|
||||
846,865 -> 846,859
|
||||
644,646 -> 742,548
|
||||
187,376 -> 187,563
|
||||
367,806 -> 250,923
|
||||
332,731 -> 468,731
|
||||
378,431 -> 469,431
|
||||
844,949 -> 844,452
|
||||
172,320 -> 735,320
|
||||
597,639 -> 633,639
|
||||
353,831 -> 353,307
|
||||
355,392 -> 465,392
|
||||
624,179 -> 548,255
|
||||
441,928 -> 401,888
|
||||
442,680 -> 442,569
|
||||
567,385 -> 908,44
|
||||
10,561 -> 603,561
|
||||
851,289 -> 13,289
|
||||
832,143 -> 832,64
|
||||
366,851 -> 67,851
|
||||
890,404 -> 333,961
|
||||
83,22 -> 963,902
|
||||
10,783 -> 821,783
|
||||
369,481 -> 369,611
|
||||
943,356 -> 846,356
|
||||
675,95 -> 335,435
|
||||
442,928 -> 442,764
|
||||
500,643 -> 334,643
|
||||
90,207 -> 620,207
|
||||
520,412 -> 745,187
|
||||
586,89 -> 613,89
|
||||
411,424 -> 595,424
|
||||
938,650 -> 232,650
|
||||
216,773 -> 76,773
|
||||
895,690 -> 895,294
|
||||
250,886 -> 250,605
|
||||
296,422 -> 863,989
|
||||
534,626 -> 534,707
|
||||
577,608 -> 52,83
|
||||
61,674 -> 714,21
|
||||
844,126 -> 844,694
|
||||
565,541 -> 253,229
|
||||
62,24 -> 986,948
|
||||
588,901 -> 588,212
|
||||
541,508 -> 541,141
|
||||
516,376 -> 589,449
|
||||
390,215 -> 749,215
|
||||
324,878 -> 296,850
|
||||
592,408 -> 592,158
|
||||
433,207 -> 172,207
|
||||
139,72 -> 139,121
|
||||
471,676 -> 268,676
|
||||
374,433 -> 374,95
|
||||
672,459 -> 640,427
|
||||
348,577 -> 843,82
|
||||
903,466 -> 903,348
|
||||
437,759 -> 726,470
|
||||
152,101 -> 325,274
|
||||
933,897 -> 335,897
|
||||
516,877 -> 505,866
|
||||
890,715 -> 570,715
|
||||
78,124 -> 871,917
|
||||
360,645 -> 967,645
|
||||
645,271 -> 645,57
|
||||
693,878 -> 693,159
|
||||
49,77 -> 49,744
|
||||
935,914 -> 97,76
|
||||
941,726 -> 941,464
|
||||
756,985 -> 756,480
|
||||
887,378 -> 887,529
|
||||
405,925 -> 405,533
|
||||
533,156 -> 201,156
|
||||
565,535 -> 120,90
|
||||
51,15 -> 967,931
|
||||
660,218 -> 660,339
|
||||
522,682 -> 571,682
|
||||
958,899 -> 729,899
|
||||
521,687 -> 288,687
|
||||
643,148 -> 468,323
|
||||
989,971 -> 68,50
|
||||
729,273 -> 311,691
|
||||
245,205 -> 305,205
|
||||
634,747 -> 634,605
|
||||
280,407 -> 488,199
|
||||
109,931 -> 706,334
|
||||
849,694 -> 615,928
|
||||
794,84 -> 218,84
|
||||
669,184 -> 865,184
|
||||
936,834 -> 234,132
|
||||
691,445 -> 914,668
|
||||
423,161 -> 515,69
|
||||
81,674 -> 37,674
|
||||
292,423 -> 292,741
|
||||
188,306 -> 844,962
|
||||
204,309 -> 204,705
|
||||
961,652 -> 746,652
|
||||
985,987 -> 11,13
|
||||
139,153 -> 936,950
|
||||
436,978 -> 244,978
|
||||
921,633 -> 921,340
|
||||
872,63 -> 233,63
|
1
Inputs/Day6.txt
Normal file
1
Inputs/Day6.txt
Normal file
@@ -0,0 +1 @@
|
||||
3,4,1,2,1,2,5,1,2,1,5,4,3,2,5,1,5,1,2,2,2,3,4,5,2,5,1,3,3,1,3,4,1,5,3,2,2,1,3,2,5,1,1,4,1,4,5,1,3,1,1,5,3,1,1,4,2,2,5,1,5,5,1,5,4,1,5,3,5,1,1,4,1,2,2,1,1,1,4,2,1,3,1,1,4,5,1,1,1,1,1,5,1,1,4,1,1,1,1,2,1,4,2,1,2,4,1,3,1,2,3,2,4,1,1,5,1,1,1,2,5,5,1,1,4,1,2,2,3,5,1,4,5,4,1,3,1,4,1,4,3,2,4,3,2,4,5,1,4,5,2,1,1,1,1,1,3,1,5,1,3,1,1,2,1,4,1,3,1,5,2,4,2,1,1,1,2,1,1,4,1,1,1,1,1,5,4,1,3,3,5,3,2,5,5,2,1,5,2,4,4,1,5,2,3,1,5,3,4,1,5,1,5,3,1,1,1,4,4,5,1,1,1,3,1,4,5,1,2,3,1,3,2,3,1,3,5,4,3,1,3,4,3,1,2,1,1,3,1,1,3,1,1,4,1,2,1,2,5,1,1,3,5,3,3,3,1,1,1,1,1,5,3,3,1,1,3,4,1,1,4,1,1,2,4,4,1,1,3,1,3,2,2,1,2,5,3,3,1,1
|
@@ -6,6 +6,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="TestDay1.fs" />
|
||||
<Compile Include="TestDay6.fs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
14
Test/TestDay6.fs
Normal file
14
Test/TestDay6.fs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace AdventOfCode2021.Test
|
||||
|
||||
open AdventOfCode
|
||||
open Xunit
|
||||
open FsUnitTyped
|
||||
|
||||
module TestDay6 =
|
||||
|
||||
[<Fact>]
|
||||
let ``Part 1`` () = Day6.part1 () |> shouldEqual 365131UL
|
||||
|
||||
[<Fact>]
|
||||
let ``Part 2`` () =
|
||||
Day6.part2 () |> shouldEqual 1650309278600UL
|
Reference in New Issue
Block a user