summaryrefslogtreecommitdiff
path: root/2024/go
diff options
context:
space:
mode:
authoromagdy <omar.professional8777@gmail.com>2024-12-05 14:41:58 +0200
committeromagdy <omar.professional8777@gmail.com>2024-12-05 14:41:58 +0200
commitd5816aaccf73f7ed9577ccc544e89a73a0128386 (patch)
treee5b8d57c3f74bd9691ab78c5e58245a8637f1dd6 /2024/go
parent8bf0fd29f7cd29c2933774b02694d8f172626ea1 (diff)
downloadaoc-d5816aaccf73f7ed9577ccc544e89a73a0128386.tar.xz
aoc-d5816aaccf73f7ed9577ccc544e89a73a0128386.zip
Day 5 done.
Diffstat (limited to '2024/go')
-rw-r--r--2024/go/input/day5.prod1386
-rw-r--r--2024/go/input/day5.test28
-rw-r--r--2024/go/src/day5/main.go179
-rw-r--r--2024/go/src/log.txt196
4 files changed, 1593 insertions, 196 deletions
diff --git a/2024/go/input/day5.prod b/2024/go/input/day5.prod
new file mode 100644
index 0000000..0f16ea5
--- /dev/null
+++ b/2024/go/input/day5.prod
@@ -0,0 +1,1386 @@
+57|32
+67|77
+67|23
+54|27
+54|35
+54|99
+27|63
+27|83
+27|14
+27|47
+83|96
+83|25
+83|45
+83|33
+83|82
+46|81
+46|67
+46|27
+46|72
+46|21
+46|73
+85|54
+85|99
+85|98
+85|28
+85|53
+85|27
+85|63
+76|69
+76|21
+76|54
+76|48
+76|92
+76|81
+76|62
+76|23
+51|75
+51|68
+51|25
+51|72
+51|62
+51|96
+51|21
+51|11
+51|27
+24|77
+24|63
+24|76
+24|72
+24|51
+24|14
+24|39
+24|18
+24|62
+24|67
+77|53
+77|57
+77|75
+77|36
+77|11
+77|23
+77|69
+77|96
+77|85
+77|52
+77|81
+45|23
+45|73
+45|54
+45|81
+45|36
+45|27
+45|65
+45|96
+45|76
+45|33
+45|52
+45|46
+11|61
+11|19
+11|39
+11|94
+11|98
+11|54
+11|56
+11|92
+11|24
+11|27
+11|43
+11|69
+11|28
+18|43
+18|76
+18|47
+18|72
+18|39
+18|25
+18|63
+18|14
+18|62
+18|32
+18|67
+18|94
+18|96
+18|77
+33|77
+33|36
+33|54
+33|73
+33|96
+33|75
+33|28
+33|23
+33|11
+33|81
+33|68
+33|65
+33|46
+33|52
+33|85
+36|69
+36|65
+36|52
+36|75
+36|48
+36|76
+36|54
+36|19
+36|68
+36|81
+36|57
+36|73
+36|56
+36|62
+36|21
+36|92
+52|73
+52|48
+52|85
+52|83
+52|23
+52|27
+52|57
+52|11
+52|31
+52|92
+52|28
+52|19
+52|54
+52|75
+52|99
+52|65
+52|24
+63|33
+63|65
+63|32
+63|35
+63|52
+63|51
+63|62
+63|45
+63|72
+63|82
+63|46
+63|96
+63|77
+63|47
+63|67
+63|23
+63|36
+63|14
+73|27
+73|99
+73|21
+73|63
+73|92
+73|98
+73|83
+73|85
+73|69
+73|39
+73|54
+73|11
+73|53
+73|32
+73|61
+73|19
+73|18
+73|57
+73|48
+19|24
+19|47
+19|82
+19|32
+19|46
+19|39
+19|92
+19|14
+19|33
+19|69
+19|83
+19|94
+19|48
+19|18
+19|57
+19|61
+19|51
+19|99
+19|56
+19|63
+99|72
+99|13
+99|14
+99|96
+99|82
+99|76
+99|35
+99|18
+99|61
+99|46
+99|39
+99|36
+99|33
+99|77
+99|51
+99|67
+99|47
+99|43
+99|94
+99|63
+99|24
+47|72
+47|52
+47|75
+47|65
+47|14
+47|96
+47|46
+47|11
+47|33
+47|85
+47|73
+47|67
+47|51
+47|82
+47|81
+47|13
+47|25
+47|77
+47|76
+47|36
+47|23
+47|62
+35|72
+35|65
+35|81
+35|47
+35|36
+35|52
+35|75
+35|62
+35|45
+35|96
+35|33
+35|46
+35|67
+35|13
+35|77
+35|76
+35|85
+35|23
+35|73
+35|51
+35|25
+35|14
+35|68
+94|13
+94|47
+94|68
+94|65
+94|82
+94|51
+94|36
+94|43
+94|67
+94|76
+94|46
+94|96
+94|35
+94|45
+94|81
+94|33
+94|72
+94|62
+94|14
+94|23
+94|25
+94|77
+94|52
+94|73
+69|82
+69|83
+69|61
+69|43
+69|35
+69|46
+69|63
+69|25
+69|67
+69|14
+69|47
+69|33
+69|24
+69|32
+69|56
+69|39
+69|72
+69|51
+69|94
+69|92
+69|48
+69|99
+69|45
+69|18
+96|62
+96|75
+96|73
+96|85
+96|57
+96|65
+96|69
+96|31
+96|23
+96|76
+96|19
+96|36
+96|81
+96|11
+96|53
+96|28
+96|27
+96|56
+96|68
+96|52
+96|21
+96|48
+96|98
+96|54
+61|13
+61|52
+61|62
+61|67
+61|35
+61|51
+61|82
+61|39
+61|36
+61|77
+61|45
+61|63
+61|32
+61|76
+61|14
+61|72
+61|94
+61|47
+61|46
+61|43
+61|33
+61|18
+61|96
+61|25
+68|21
+68|98
+68|18
+68|83
+68|57
+68|28
+68|73
+68|53
+68|99
+68|19
+68|69
+68|63
+68|11
+68|92
+68|85
+68|27
+68|48
+68|39
+68|61
+68|75
+68|56
+68|54
+68|24
+68|31
+53|82
+53|47
+53|69
+53|24
+53|32
+53|61
+53|63
+53|31
+53|39
+53|14
+53|92
+53|18
+53|98
+53|56
+53|83
+53|19
+53|99
+53|33
+53|94
+53|57
+53|35
+53|48
+53|45
+53|43
+23|24
+23|21
+23|28
+23|65
+23|73
+23|48
+23|98
+23|75
+23|31
+23|92
+23|19
+23|69
+23|56
+23|68
+23|53
+23|85
+23|57
+23|99
+23|27
+23|83
+23|81
+23|61
+23|11
+23|54
+21|98
+21|92
+21|31
+21|48
+21|43
+21|57
+21|35
+21|69
+21|56
+21|82
+21|39
+21|63
+21|94
+21|61
+21|53
+21|47
+21|28
+21|19
+21|24
+21|27
+21|83
+21|18
+21|99
+21|32
+72|11
+72|53
+72|76
+72|52
+72|85
+72|68
+72|13
+72|19
+72|27
+72|54
+72|23
+72|57
+72|36
+72|31
+72|21
+72|28
+72|73
+72|77
+72|98
+72|96
+72|81
+72|75
+72|65
+72|62
+14|72
+14|73
+14|77
+14|76
+14|52
+14|25
+14|11
+14|96
+14|51
+14|65
+14|67
+14|62
+14|13
+14|36
+14|21
+14|75
+14|68
+14|33
+14|81
+14|23
+14|46
+14|85
+14|45
+14|54
+98|43
+98|56
+98|47
+98|61
+98|24
+98|39
+98|69
+98|63
+98|32
+98|57
+98|51
+98|33
+98|83
+98|18
+98|35
+98|82
+98|48
+98|94
+98|99
+98|92
+98|19
+98|46
+98|45
+98|14
+82|96
+82|81
+82|23
+82|14
+82|13
+82|76
+82|73
+82|68
+82|77
+82|75
+82|33
+82|65
+82|11
+82|72
+82|36
+82|46
+82|67
+82|52
+82|51
+82|25
+82|54
+82|85
+82|45
+82|62
+13|68
+13|81
+13|73
+13|65
+13|54
+13|57
+13|52
+13|28
+13|62
+13|76
+13|23
+13|75
+13|36
+13|53
+13|21
+13|56
+13|69
+13|98
+13|31
+13|96
+13|27
+13|85
+13|11
+13|19
+65|98
+65|24
+65|81
+65|73
+65|31
+65|48
+65|28
+65|11
+65|53
+65|99
+65|27
+65|19
+65|18
+65|92
+65|85
+65|21
+65|61
+65|54
+65|83
+65|69
+65|56
+65|75
+65|68
+65|57
+39|25
+39|96
+39|47
+39|65
+39|35
+39|33
+39|72
+39|36
+39|52
+39|77
+39|94
+39|45
+39|23
+39|13
+39|46
+39|76
+39|14
+39|82
+39|62
+39|32
+39|51
+39|67
+39|43
+39|63
+62|85
+62|28
+62|99
+62|23
+62|53
+62|19
+62|31
+62|81
+62|57
+62|54
+62|21
+62|48
+62|65
+62|83
+62|98
+62|75
+62|11
+62|52
+62|69
+62|56
+62|92
+62|27
+62|68
+62|73
+81|75
+81|28
+81|57
+81|56
+81|53
+81|48
+81|85
+81|11
+81|21
+81|92
+81|99
+81|68
+81|27
+81|24
+81|98
+81|61
+81|39
+81|31
+81|54
+81|83
+81|73
+81|18
+81|19
+81|69
+56|25
+56|35
+56|82
+56|32
+56|94
+56|67
+56|99
+56|33
+56|48
+56|18
+56|24
+56|47
+56|46
+56|39
+56|83
+56|72
+56|45
+56|61
+56|63
+56|77
+56|51
+56|43
+56|14
+56|92
+43|62
+43|72
+43|73
+43|51
+43|96
+43|35
+43|45
+43|33
+43|52
+43|67
+43|65
+43|46
+43|23
+43|68
+43|76
+43|14
+43|13
+43|82
+43|47
+43|81
+43|85
+43|25
+43|36
+43|77
+48|63
+48|33
+48|14
+48|32
+48|61
+48|18
+48|83
+48|43
+48|24
+48|45
+48|72
+48|13
+48|92
+48|51
+48|67
+48|47
+48|35
+48|99
+48|82
+48|94
+48|25
+48|77
+48|39
+48|46
+28|98
+28|14
+28|53
+28|56
+28|45
+28|24
+28|47
+28|69
+28|99
+28|82
+28|61
+28|39
+28|43
+28|18
+28|63
+28|31
+28|35
+28|32
+28|83
+28|92
+28|48
+28|94
+28|57
+28|19
+25|77
+25|28
+25|19
+25|75
+25|27
+25|76
+25|21
+25|31
+25|98
+25|23
+25|72
+25|54
+25|96
+25|85
+25|52
+25|81
+25|53
+25|62
+25|13
+25|68
+25|36
+25|11
+25|65
+25|73
+75|28
+75|53
+75|83
+75|69
+75|11
+75|99
+75|24
+75|31
+75|56
+75|21
+75|98
+75|54
+75|19
+75|32
+75|94
+75|61
+75|43
+75|18
+75|39
+75|48
+75|63
+75|92
+75|27
+75|57
+92|47
+92|25
+92|35
+92|83
+92|77
+92|67
+92|72
+92|51
+92|46
+92|24
+92|99
+92|32
+92|13
+92|82
+92|18
+92|63
+92|61
+92|33
+92|96
+92|94
+92|39
+92|43
+92|45
+92|14
+31|24
+31|35
+31|63
+31|83
+31|39
+31|57
+31|45
+31|94
+31|32
+31|43
+31|48
+31|18
+31|82
+31|56
+31|14
+31|98
+31|99
+31|69
+31|33
+31|47
+31|46
+31|92
+31|19
+31|61
+32|76
+32|65
+32|25
+32|33
+32|67
+32|68
+32|13
+32|82
+32|96
+32|47
+32|23
+32|52
+32|14
+32|72
+32|51
+32|94
+32|77
+32|43
+32|81
+32|46
+32|35
+32|36
+32|62
+32|45
+57|92
+57|45
+57|14
+57|63
+57|18
+57|33
+57|82
+57|47
+57|83
+57|99
+57|94
+57|35
+57|56
+57|25
+57|43
+57|69
+57|46
+57|61
+57|39
+57|51
+57|48
+57|24
+57|67
+67|25
+67|53
+67|65
+67|98
+67|27
+67|62
+67|13
+67|31
+67|75
+67|52
+67|72
+67|36
+67|11
+67|54
+67|73
+67|21
+67|81
+67|28
+67|76
+67|96
+67|85
+67|68
+54|56
+54|31
+54|69
+54|57
+54|98
+54|94
+54|61
+54|24
+54|92
+54|47
+54|53
+54|43
+54|19
+54|28
+54|18
+54|83
+54|32
+54|63
+54|21
+54|39
+54|48
+27|19
+27|24
+27|94
+27|35
+27|18
+27|56
+27|31
+27|99
+27|43
+27|82
+27|57
+27|39
+27|32
+27|98
+27|53
+27|28
+27|92
+27|48
+27|69
+27|61
+83|18
+83|67
+83|61
+83|13
+83|14
+83|94
+83|36
+83|72
+83|24
+83|39
+83|77
+83|35
+83|99
+83|43
+83|32
+83|51
+83|46
+83|63
+83|47
+46|25
+46|52
+46|36
+46|68
+46|13
+46|76
+46|96
+46|77
+46|11
+46|51
+46|75
+46|85
+46|28
+46|54
+46|23
+46|65
+46|62
+46|53
+85|94
+85|11
+85|21
+85|57
+85|69
+85|56
+85|24
+85|18
+85|31
+85|39
+85|92
+85|32
+85|83
+85|19
+85|48
+85|61
+85|75
+76|98
+76|52
+76|53
+76|85
+76|57
+76|68
+76|56
+76|28
+76|83
+76|19
+76|11
+76|65
+76|75
+76|31
+76|73
+76|27
+51|54
+51|36
+51|77
+51|52
+51|28
+51|23
+51|67
+51|13
+51|31
+51|76
+51|85
+51|81
+51|65
+51|53
+51|73
+24|94
+24|33
+24|25
+24|96
+24|32
+24|43
+24|35
+24|61
+24|13
+24|45
+24|82
+24|36
+24|46
+24|47
+77|31
+77|21
+77|76
+77|65
+77|98
+77|27
+77|54
+77|73
+77|28
+77|13
+77|19
+77|62
+77|68
+45|13
+45|51
+45|77
+45|68
+45|62
+45|72
+45|11
+45|75
+45|85
+45|67
+45|25
+45|21
+11|63
+11|21
+11|83
+11|35
+11|32
+11|53
+11|48
+11|57
+11|31
+11|99
+11|18
+18|35
+18|23
+18|33
+18|82
+18|51
+18|45
+18|13
+18|36
+18|52
+18|46
+33|13
+33|51
+33|21
+33|25
+33|72
+33|62
+33|67
+33|76
+33|27
+36|53
+36|27
+36|23
+36|98
+36|28
+36|85
+36|11
+36|31
+52|69
+52|53
+52|98
+52|21
+52|68
+52|81
+52|56
+63|13
+63|81
+63|43
+63|94
+63|76
+63|25
+73|28
+73|24
+73|75
+73|56
+73|31
+19|43
+19|67
+19|45
+19|35
+99|25
+99|45
+99|32
+47|68
+47|45
+35|82
+
+46,51,67,25,72,77,13,96,36,76,52,23,65,81,68,73,85,75,11,54,21,27,28
+68,73,85,75,11,54,21,28,31,19,57,69,56,48,92,83,99,24,61,18,39
+83,99,24,61,63,32,94,35,47,82,14,45,33,46,51,67,25,72,77,13,96
+19,81,75,36,27,96,11
+75,11,54,21,28,31,98,19,56,92,83,99,24,18,63,32,94
+62,23,85,75,27,31,19,48,83
+23,65,81,68,73,85,11,54,27,31,98,19,57,48,92,83,24
+61,39,63,32,43,35,47,45,33,46,67,72,77,96,36
+27,28,53,31,98,19,57,69,56,48,92,83,99,24,61,18,39,63,32,94,35,47,82
+57,54,31,27,28,21,68,48,23,53,19
+18,39,63,32,94,43,35,47,82,14,33,46,51,67,25,72,77,13,96,36,76,62,52
+28,69,76,56,23,21,98,68,96,65,75,11,36,54,27,53,19,85,73,57,62
+14,46,96,73,75
+96,36,76,62,23,81,68,73,85,75,11,54,27,53,31,98,57,69,56
+98,57,56,48,92,83,99,24,18,39,94,43,82,14,45,33,46
+57,83,39,53,99,85,19,18,56
+68,85,27,28,56,83,61,18,39
+31,98,19,57,69,56,48,92,83,99,24,61,18,39,32,94,43,35,47,82,14,45,33
+62,39,13,43,72,36,82,45,61
+81,68,73,85,75,11,54,21,27,28,53,31,98,19,69,56,48,92,83,99,24,61,18
+61,18,45,56,83,47,43,63,35,39,69,92,25
+73,53,81,28,19,52,31,57,62,83,68,92,85,23,48
+52,23,65,81,68,73,85,75,11,54,21,27,28,53,31,98,19,69,56,48,92,83,99
+62,68,36,72,54,11,75,67,65
+24,39,63,32,47,14,45,33,46,67,25,77,96,36,76
+27,57,28,19,61,56,83,54,63,69,39,53,32,31,11
+43,14,46,51,72,77,36,65,81,68,73
+51,85,81,46,35,47,68,33,82,76,25,62,67,52,23
+69,24,83,92,53,99,21,56,18,31,11,43,63,57,94,98,61,39,28,19,48,32,54
+75,27,31,98,19,56,48,92,94
+47,45,33,51,72,77,36,76,62,52,65,81,68
+32,35,47,82,14,51,67,25,72,13,96,62,52,23,81
+19,31,54,81,76,56,52,65,21,28,73,36,75,68,96,11,53,27,23,69,98,57,62
+65,81,68,73,85,54,21,27,28,31,98,19,57,69,56,48,92,83,99,24,61
+83,99,61,94,82,14,33,46,51,67,25
+36,76,65,68,54,21,53,19,48
+23,65,81,11,83
+33,67,96,36,68,85,54,21,27
+54,18,24,39,21,98,63,27,92,83,31,61,48,75,57,28,69,85,73,19,11
+54,21,28,57,69,56,92,99,24,61,18,39,32,43,35
+39,63,32,94,35,47,46,51,67,72,77,13,96,76,62,52,23
+68,65,31,54,25,36,73,85,27,28,67
+13,67,68,81,96
+81,73,75,11,54,27,53,31,98,19,57,56,48,92,24,61,18
+92,54,24,32,28,19,53,39,35
+63,92,13,99,83,45,51
+85,11,54,21,28,53,31,98,56,24,61,18,32
+19,56,48,83,63,46,51
+75,11,21,27,28,53,31,19,57,92,83,99,24,61,18,39,63,32,94
+46,65,82,94,68,23,36,72,45,47,52,33,51,62,13
+56,48,92,83,99,24,61,39,63,32,94,43,35,47,82,14,33,46,51,67,72
+67,25,72,77,13,96,36,76,52,23,65,81,68,73,85,75,11,54,21,27,28,53,31
+83,57,31,54,21,92,28,85,63,53,48,39,73
+85,82,62,52,45,46,68,25,33
+25,27,21,68,98,72,81,23,13
+13,96,62,23,65,81,85,75,11
+98,57,11,73,99,52,48,65,28,75,19,85,69,92,83,81,56,21,31,68,27
+27,28,53,19,57,69,56,99,61,18,39,32,82
+53,21,48,54,28,68,36,73,85,76,23,31,98,11,81,56,52,57,69
+54,21,27,28,98,57,69,48,92,83,99,24,61,18,63,43,35
+23,65,81,68,27,57,24
+85,75,11,54,21,27,28,53,31,98,19,57,69,56,48,92,83,24,61,18,39,63,32
+54,53,27,11,56,39,68
+63,53,61,19,57,82,27
+14,76,51,43,46,82,67,45,52,35,96,94,33,81,47,13,65,36,77,62,23
+62,23,51,82,94,52,45,33,36,63,77,32,13,35,47,65,72,46,14,25,67,43,96
+92,83,99,24,61,18,39,32,94,43,35,47,82,14,45,33,46,51,67,25,72
+68,85,11,54,21,27,19,57,69,56,99,24,18
+48,18,83,46,82,77,67,72,24
+32,43,82,33,46,67,96,36,76
+28,65,11,68,54,27,23,56,98,92,19
+48,45,18,19,61,43,31,35,98,47,63,53,83,82,39,14,24,69,32,57,99
+92,83,99,24,18,39,32,94,35,82,51,72,13
+98,11,36,56,53,57,52,96,69,65,68
+33,77,96,76,62,52,23,65,68,75,54,21,27
+92,83,99,24,61,18,39,63,32,94,35,47,82,14,45,33,46,51,67,25,72,77,13
+33,67,13,96,62,65,73,85,27
+76,98,28,85,21
+75,28,31,98,57,92,99
+85,75,11,54,21,27,53,31,98,19,57,69,56,48,92,83,99,24,61,18,39,63,32
+72,76,62,65,81,75,11,21,53
+85,81,31,69,13,53,75,54,27,98,19,57,65
+94,35,47,82,14,45,33,46,51,67,25,72,77,13,96,36,76,62,52,23,65,81,68
+53,19,13,73,28,72,54,36,65,98,75
+76,11,62,68,53,77,65,54,28,75,52,85,21
+83,24,57,54,43,69,11
+23,82,35,52,43,39,13,77,47,63,96
+43,35,82,14,45,33,46,51,67,25,72,77,13,96,36,76,62,52,23,65,81,68,73
+36,19,13,98,65,76,23,81,28,72,11
+31,48,24,27,57,98,28,56,54,35,19
+21,13,85,31,27,57,36,68,81,54,76,96,73,77,23,52,62,11,75,19,98,65,53
+21,27,98,69,83,24,18,63,32,94,43,35,47
+56,99,69,48,54
+11,23,36,77,81,65,28,62,68,52,27,75,96,46,67
+83,24,61,18,63,94,43,35,47,82,14,46,51,67,25,77,96
+94,39,82,69,99,47,63,57,92,32,98,56,18,35,14,48,43,19,28
+72,76,96,67,65,73,82,68,35,52,85
+63,14,33,46,51,67,72
+63,32,94,43,35,82,14,46,51,72,77,96,36,76,62,23,65
+57,69,48,92,83,99,24,18,39,63,32,94,35,14,45,51,67
+57,99,61,39,47,82,46,51,67
+76,62,52,23,65,81,68,73,85,75,54,27,28,53,31,98,19,57,69,48,92
+75,36,21,85,46,28,27
+45,33,35,96,51,72,36,23,52,47,25,94,81,82,62,13,32,76,14
+11,54,21,28,53,98,19,57,69,56,92,83,99,24,61,39,32,94,43
+25,33,24,77,13,61,51,47,39,82,46,14,18,96,35,67,94,63,36,45,43,99,32
+85,13,68,53,27,36,69,57,52,11,96
+77,13,96,36,76,52,23,65,81,73,85,75,11,54,98,19,57
+47,67,72,13,62,52,68
+45,33,77,76,73
+39,92,18,35,72,13,61,82,77,32,51,14,46,47,45,25,63
+98,52,11,21,54,75,31,53,36,85,77,27,68,72,73,19,23,81,65
+45,25,82,11,68,52,85,75,23,46,51,96,77,67,72
+76,47,72,63,67,33,62,46,32,61,25,77,18,14,96,94,36,35,39,43,13
+76,62,52,65,81,21,28
+69,56,48,92,83,99,24,61,39,32,94,43,35,47,82,45,33,46,51,67,25
+85,81,23,77,54,72,51,76,36,75,21,68,11,67,28,13,65
+73,21,68,45,11,85,23,33,81,36,46
+67,24,45,83,32,39,61
+28,51,67,46,76,96,11,21,73,27,62,25,65,85,52
+13,36,52,23,81,54,31,57,69
+21,27,28,53,98,19,69,56,48,92,24,18,94,35,47
+24,18,39,63,32,94,35,47,82,14,45,33,46,67,25,72,77,13,96,36,76
+51,36,76,62,11,27,53
+81,68,73,54,21,28,53,98,57,69,48,92,83,99,24,61,18
+46,33,98,19,69,61,14,45,47,24,48,82,99,57,63,94,39,83,56
+28,57,92,83,24,39,63,35,14
+65,73,85,75,11,54,28,24,61
+48,92,83,99,24,61,47,72,77
+82,25,83,61,77,39,63,45,99
+36,76,65,73,54,56,48
+19,83,24,18,39,63,32,94,43,35,82,14,33,46,51
+11,21,53,69,56,48,83,32,43
+32,45,25,94,99,63,47,48,82,77,14
+32,57,46,33,24,14,69,83,82,51,39,92,99,63,61,48,67,47,18
+48,57,11,92,65,53,61,75,21,56,83,73,54,68,27,69,31,24,98,28,19,81,99
+31,75,83,62,57,68,52,23,56,73,48
+45,92,94,61,32,13,18
+46,27,76,52,62,68,36,33,54,21,72,96,51
+19,57,69,56,48,92,99,24,61,18,39,63,32,94,43,35,47,82,14,45,33,46,51
+69,83,99,24,61,39,63,94,35,82,45,33,51,67,25
+53,31,69,63,83,54,85,21,18,28,92,27,57,98,48,24,56,75,32,39,99,61,19
+81,82,35,72,96,68,36,46,13,62,14,73,76,25,33,52,43,67,45
+69,56,48,61,35,82,14,45,25
+76,23,81,11,21,28,19,57,48
+73,75,11,21,27,53,98,19,57,69,56,83,99,24,61,18,39
+18,39,63,32,94,43,35,47,82,14,45,46,51,67,25,72,77,13,36,62,52
+94,69,99,56,43,46,61,63,67,82,35,47,32,83,18,39,48,92,51,24,45,33,25
+27,56,81,11,53,18,68,69,48
+61,35,13,94,77,47,51,99,63,18,36,67,24,45,46,43,72,32,33,96,14,39,25
+32,57,28,53,99,27,18,75,48,85,83
+32,43,47,14,51,67,25,13,36,76,52
+73,75,54,21,53,98,19,48,83,99,61
+76,52,81,68,28
+75,98,56,83,39
+43,33,36,67,62,72,18,94,77,45,35,82,32,61,76,96,14
+54,21,27,53,98,69,56,92,83,99,18,39,63,32,94,43,35
+53,75,56,21,99,85,83,19,92,73,48,28,31,23,11,57,81
+21,28,53,98,69,24,63
+48,99,43,94,92,53,82,69,27,56,39,32,35
+24,18,39,94,43,35,47,82,14,45,33,46,51,67,25,13,96,36,76
+65,14,25,77,54,33,23,52,96,13,11,68,73
+92,57,94,53,19,63,98,47,99,18,61,39,82,14,24,35,69,28,83,56,32,48,43
+94,39,48,83,99,53,69,31,14,28,98,82,32,18,24,35,63,56,47,61,92,19,57
+25,72,77,13,96,36,76,62,52,23,65,81,68,73,85,75,11,54,27,28,53,31,98
+36,76,62,52,23,65,81,73,75,11,54,53,98,19,57
+56,48,35,43,45,18,72,63,83
+68,62,31,67,73,72,23,13,81,76,36
+21,28,98,57,39,54,19,61,18,92,83,24,11,63,69,43,94
+25,13,96,76,62,52,81,73,85,75,11,54,27,31,98
+62,65,81,68,73,75,54,27,28,57,69,92,83
+45,47,62,35,46,32,82,14,96,52,39,67,94,33,25,77,36,72,13,51,43,18,63
+36,82,67,96,35,62,94,43,61,13,46,51,47,77,18,76,39,25,63,14,33,45,32
+19,57,69,56,48,83,99,24,61,18,39,63,94,43,47,82,14,45,33,46,51
+28,81,75,11,72,98,62,68,65,52,19
+82,33,65,76,51,45,72,36,96,77,63,32,13,94,47
+48,83,99,63,43,35,77
+21,27,28,53,31,19,57,69,56,48,92,83,99,24,61,18,39,63,32,94,43,35,47
+35,25,36,47,18,24,14,77,99,45,96
+96,11,23,13,85,76,73,33,65,21,67,52,36,81,25,27,62
+82,45,33,67,62,65,73
+14,36,61,94,43
+76,27,92,28,75,52,69
+31,56,28,68,73,69,57,53,21,23,11,65,76,62,48,75,54,19,98,92,27,52,85
+36,76,52,23,65,81,68,73,85,75,11,54,21,27,28,53,31,98,19,57,69,56,48
+99,61,18,43,53,45,47,83,24,94,63,92,56,57,82,69,14
+82,94,57,14,83,32,46,35,98,99,45
+53,98,19,57,69,56,48,92,24,39,63,32,94,43,35,47,82,14,45
+35,82,14,45,33,46,25,72,77,96,23,65,85
+98,92,81,53,85,76,48,27,62
+98,57,92,99,18,39,43,47,82,14,45,33,46
+28,53,31,98,57,69,48,83,99,24,61,18,39,63,32,43,35,47,82
+24,61,39,63,32,35,46,51,67,36,76
+99,98,33,18,82,48,24,45,35,32,19
+62,52,23,81,68,73,85,75,11,54,21,53,98,19,57,56,48,92,83
+73,28,53,19,56,99,24
+81,45,82,14,43,73,46,47,33,68,77,96,25,51,13,35,23,52,62
+65,28,61,83,99,92,98
+83,99,94,43,47,67,96
+82,14,46,51,67,77,96,76,23,85,75
+45,46,51,81,75
+94,43,35,47,82,14,45,46,67,72,13,96,36,52,65
+81,77,11,28,31,68,85,54,76,65,62,36,75,21,57,19,98,27,52,23,96
+83,54,21,18,39,68,53
+33,18,69,51,24,94,14,19,48
+32,36,94,13,67,51,35,46,62,96,63,77,72,52,76,82,23
+76,62,52,23,65,81,68,73,85,11,27,28,98,57,48
+69,56,48,92,24,18,39,94,43,35,82,45,33,67,25
+46,51,67,25,72,77,13,96,76,62,52,23,68,73,85,75,11,54,21,27,28
diff --git a/2024/go/input/day5.test b/2024/go/input/day5.test
new file mode 100644
index 0000000..9d146d6
--- /dev/null
+++ b/2024/go/input/day5.test
@@ -0,0 +1,28 @@
+47|53
+97|13
+97|61
+97|47
+75|29
+61|13
+75|53
+29|13
+97|29
+53|29
+61|53
+97|53
+61|29
+47|13
+75|47
+97|75
+47|61
+75|61
+47|29
+75|13
+53|13
+
+75,47,61,53,29
+97,61,53,29,13
+75,29,13
+75,97,47,61,53
+61,13,29
+97,13,75,29,47
diff --git a/2024/go/src/day5/main.go b/2024/go/src/day5/main.go
new file mode 100644
index 0000000..57b0de0
--- /dev/null
+++ b/2024/go/src/day5/main.go
@@ -0,0 +1,179 @@
+package main
+
+import (
+ "fmt"
+ "os"
+ "slices"
+ "sort"
+ "strconv"
+ "strings"
+)
+
+type Section struct {
+ pageOrderingRules [][2]int
+ updates [][]int
+}
+
+func (s Section) String() string {
+ var builder strings.Builder
+
+ // Format pageOrderingRules
+ builder.WriteString("Page Ordering Rules: [")
+ for i, rule := range s.pageOrderingRules {
+ if i > 0 {
+ builder.WriteString(", ")
+ }
+ builder.WriteString(fmt.Sprintf("[%d, %d]", rule[0], rule[1]))
+ }
+ builder.WriteString("]\n")
+
+ // Format updates
+ builder.WriteString("Updates: [")
+ for i, update := range s.updates {
+ if i > 0 {
+ builder.WriteString(", ")
+ }
+ builder.WriteString("[")
+ for j, val := range update {
+ if j > 0 {
+ builder.WriteString(", ")
+ }
+ builder.WriteString(fmt.Sprintf("%d", val))
+ }
+ builder.WriteString("]")
+ }
+ builder.WriteString("]")
+
+ return builder.String()
+}
+
+func FileRead(path string) string {
+ file, err := os.ReadFile(path)
+ if err != nil {
+ fmt.Println("Couldn't Read file: ", err)
+ }
+ return string(file)
+
+}
+
+func parseInput(data string) Section {
+ section := strings.Split(data, "\n\n")
+ first_section := strings.Split(section[0], "\n")
+ second_section := strings.Split(section[1], "\n")
+ var pageOrderingRules [][2]int
+ var updates [][]int
+ for _, rule := range first_section {
+ pages := strings.Split(rule, "|")
+ pageOne, _ := strconv.Atoi(pages[0])
+ pageTwo, _ := strconv.Atoi(pages[1])
+ arr := [2]int{pageOne, pageTwo}
+ pageOrderingRules = append(pageOrderingRules, arr)
+ }
+ for _, line := range second_section {
+ line := strings.Split(line, ",")
+ var update []int
+ for _, ele := range line {
+ ele, _ := strconv.Atoi(ele)
+ update = append(update, ele)
+ }
+ updates = append(updates, update)
+ }
+ return Section{
+ pageOrderingRules: pageOrderingRules,
+ updates: updates,
+ }
+
+}
+
+func filter_relevant_rules(s *Section, update *[]int) [][2]int {
+ var filtered_rules [][2]int
+ for _, rule := range s.pageOrderingRules {
+ if slices.Contains(*update, rule[0]) && slices.Contains(*update, rule[1]) {
+ filtered_rules = append(filtered_rules, rule)
+ }
+ }
+ return filtered_rules
+}
+
+func makeProperList(items [][2]int) []int {
+ counter := make(map[int]int)
+
+ for _, item := range items {
+ counter[item[0]]++
+ if _, exists := counter[item[1]]; !exists {
+ counter[item[1]] = 0
+ }
+ }
+
+ var sorted [][2]int
+
+ for val, fq := range counter {
+ arr := [2]int{fq, val}
+ sorted = append(sorted, arr)
+ }
+
+ sort.Slice(sorted, func(i, j int) bool {
+ return sorted[i][0] > sorted[j][0]
+ })
+
+ var properList []int
+
+ for _, x := range sorted {
+ if len(x) == 0 {
+ break
+ }
+ properList = append(properList, x[1])
+ }
+
+ return properList
+}
+
+func solve_part_one(data string) int {
+ section := parseInput(data)
+ ans := 0
+ for _, update := range section.updates {
+ filtered_rules := filter_relevant_rules(&section, &update)
+ properList := makeProperList(filtered_rules)
+ flag := true
+ for i := range properList {
+ if properList[i] != update[i] {
+ flag = false
+ break
+ }
+ }
+ if flag {
+ ans += update[len(update)/2]
+ }
+ }
+ return ans
+}
+
+func solve_part_two(data string) int {
+ section := parseInput(data)
+ ans := 0
+ for _, update := range section.updates {
+ filtered_rules := filter_relevant_rules(&section, &update)
+ properList := makeProperList(filtered_rules)
+ flag := true
+ for i := range properList {
+ if properList[i] != update[i] {
+ flag = false
+ break
+ }
+ }
+ if !flag {
+ ans += properList[len(properList)/2]
+ }
+ }
+ return ans
+}
+
+func main() {
+ test := FileRead("../input/day5.test")
+ prod := FileRead("../input/day5.prod")
+
+ fmt.Println("Part_1 test: ", solve_part_one(test))
+ fmt.Println("Part_1 prod: ", solve_part_one(prod))
+ fmt.Println("Part_2 test: ", solve_part_two(test))
+ fmt.Println("Part_2 prod: ", solve_part_two(prod))
+}
diff --git a/2024/go/src/log.txt b/2024/go/src/log.txt
deleted file mode 100644
index d1c7708..0000000
--- a/2024/go/src/log.txt
+++ /dev/null
@@ -1,196 +0,0 @@
-MMM
-MSA
-AMX
-
-MSA
-AMX
-MSA
-
-AMX
-M