dag 14 aoc klaar, deel 2 gedaan met minimale safety factor
This commit is contained in:
7
advent_of_code/2024/14/Cargo.toml
Normal file
7
advent_of_code/2024/14/Cargo.toml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[package]
|
||||||
|
name = "main"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
nom = "7.1.3"
|
||||||
500
advent_of_code/2024/14/input.txt
Normal file
500
advent_of_code/2024/14/input.txt
Normal file
@@ -0,0 +1,500 @@
|
|||||||
|
p=62,65 v=-96,-93
|
||||||
|
p=50,44 v=72,74
|
||||||
|
p=33,42 v=-6,-83
|
||||||
|
p=68,100 v=36,21
|
||||||
|
p=45,36 v=3,-44
|
||||||
|
p=9,48 v=-14,47
|
||||||
|
p=55,21 v=-71,-7
|
||||||
|
p=65,10 v=-58,-9
|
||||||
|
p=22,11 v=93,36
|
||||||
|
p=25,38 v=58,-46
|
||||||
|
p=82,16 v=-73,49
|
||||||
|
p=93,31 v=-51,-77
|
||||||
|
p=42,70 v=32,35
|
||||||
|
p=17,0 v=-46,-26
|
||||||
|
p=36,55 v=70,85
|
||||||
|
p=94,101 v=53,-18
|
||||||
|
p=4,73 v=17,-39
|
||||||
|
p=17,4 v=89,7
|
||||||
|
p=99,17 v=-50,-40
|
||||||
|
p=20,101 v=-49,11
|
||||||
|
p=82,24 v=13,-71
|
||||||
|
p=11,64 v=49,-76
|
||||||
|
p=2,98 v=94,90
|
||||||
|
p=41,62 v=69,-43
|
||||||
|
p=100,99 v=-50,-26
|
||||||
|
p=84,60 v=16,68
|
||||||
|
p=8,20 v=16,-50
|
||||||
|
p=50,6 v=34,52
|
||||||
|
p=17,50 v=-40,41
|
||||||
|
p=90,88 v=-62,74
|
||||||
|
p=25,36 v=-11,-46
|
||||||
|
p=93,29 v=12,22
|
||||||
|
p=47,62 v=61,-25
|
||||||
|
p=68,22 v=-97,-36
|
||||||
|
p=49,70 v=67,58
|
||||||
|
p=31,13 v=-74,-71
|
||||||
|
p=22,29 v=-77,47
|
||||||
|
p=8,81 v=-14,87
|
||||||
|
p=24,31 v=-41,26
|
||||||
|
p=16,77 v=17,-18
|
||||||
|
p=18,89 v=-79,83
|
||||||
|
p=98,44 v=83,20
|
||||||
|
p=66,73 v=-58,-51
|
||||||
|
p=96,49 v=-52,-25
|
||||||
|
p=82,5 v=-26,56
|
||||||
|
p=63,16 v=6,-36
|
||||||
|
p=8,25 v=-38,48
|
||||||
|
p=85,38 v=38,34
|
||||||
|
p=39,48 v=-39,16
|
||||||
|
p=64,29 v=43,-87
|
||||||
|
p=99,33 v=26,60
|
||||||
|
p=52,91 v=53,30
|
||||||
|
p=0,98 v=-12,7
|
||||||
|
p=45,93 v=64,85
|
||||||
|
p=67,55 v=90,-39
|
||||||
|
p=19,78 v=90,-14
|
||||||
|
p=87,92 v=-86,-7
|
||||||
|
p=14,50 v=55,47
|
||||||
|
p=79,23 v=-63,32
|
||||||
|
p=61,66 v=-78,-5
|
||||||
|
p=55,67 v=1,16
|
||||||
|
p=90,10 v=-57,94
|
||||||
|
p=21,76 v=-78,60
|
||||||
|
p=83,76 v=-89,-29
|
||||||
|
p=24,8 v=57,-63
|
||||||
|
p=71,55 v=-57,51
|
||||||
|
p=66,62 v=71,-91
|
||||||
|
p=86,11 v=-54,-17
|
||||||
|
p=81,21 v=-22,18
|
||||||
|
p=92,6 v=14,75
|
||||||
|
p=30,24 v=89,-83
|
||||||
|
p=63,0 v=63,-19
|
||||||
|
p=16,59 v=17,-89
|
||||||
|
p=61,27 v=-63,30
|
||||||
|
p=93,27 v=49,14
|
||||||
|
p=17,39 v=-77,51
|
||||||
|
p=75,97 v=-98,77
|
||||||
|
p=21,63 v=86,-4
|
||||||
|
p=4,72 v=-95,-89
|
||||||
|
p=92,96 v=79,-88
|
||||||
|
p=94,20 v=-84,-1
|
||||||
|
p=73,15 v=38,-65
|
||||||
|
p=81,0 v=12,-57
|
||||||
|
p=6,61 v=-83,-86
|
||||||
|
p=59,29 v=67,47
|
||||||
|
p=58,40 v=31,-50
|
||||||
|
p=61,55 v=-99,-99
|
||||||
|
p=24,82 v=-47,6
|
||||||
|
p=16,60 v=-84,-68
|
||||||
|
p=92,30 v=-87,-52
|
||||||
|
p=56,10 v=64,-98
|
||||||
|
p=75,86 v=54,-30
|
||||||
|
p=50,15 v=28,80
|
||||||
|
p=14,81 v=-12,-10
|
||||||
|
p=90,87 v=-87,-26
|
||||||
|
p=98,53 v=-18,35
|
||||||
|
p=11,16 v=-48,63
|
||||||
|
p=62,86 v=71,58
|
||||||
|
p=97,95 v=-28,72
|
||||||
|
p=16,63 v=-29,35
|
||||||
|
p=63,51 v=41,-63
|
||||||
|
p=44,16 v=41,35
|
||||||
|
p=9,72 v=14,-1
|
||||||
|
p=7,37 v=51,63
|
||||||
|
p=63,60 v=4,10
|
||||||
|
p=83,77 v=80,64
|
||||||
|
p=42,0 v=-37,-84
|
||||||
|
p=99,101 v=99,5
|
||||||
|
p=66,92 v=8,95
|
||||||
|
p=91,68 v=16,-82
|
||||||
|
p=59,37 v=-66,82
|
||||||
|
p=99,2 v=-52,9
|
||||||
|
p=53,2 v=-99,5
|
||||||
|
p=87,97 v=-10,4
|
||||||
|
p=15,48 v=63,-29
|
||||||
|
p=100,7 v=14,7
|
||||||
|
p=93,85 v=15,25
|
||||||
|
p=73,6 v=-60,15
|
||||||
|
p=53,6 v=45,62
|
||||||
|
p=83,79 v=-22,-43
|
||||||
|
p=100,93 v=17,-84
|
||||||
|
p=1,51 v=-83,76
|
||||||
|
p=98,30 v=-86,12
|
||||||
|
p=78,24 v=-27,-3
|
||||||
|
p=53,73 v=2,29
|
||||||
|
p=43,19 v=-3,-7
|
||||||
|
p=42,35 v=-35,55
|
||||||
|
p=55,70 v=73,-9
|
||||||
|
p=55,73 v=-99,-12
|
||||||
|
p=82,88 v=77,-84
|
||||||
|
p=52,82 v=49,-50
|
||||||
|
p=99,5 v=-18,-61
|
||||||
|
p=96,87 v=6,-58
|
||||||
|
p=73,93 v=41,79
|
||||||
|
p=39,34 v=99,-46
|
||||||
|
p=78,38 v=14,26
|
||||||
|
p=38,39 v=-6,53
|
||||||
|
p=68,27 v=73,90
|
||||||
|
p=57,43 v=-24,57
|
||||||
|
p=7,66 v=-87,43
|
||||||
|
p=0,13 v=-18,67
|
||||||
|
p=72,69 v=12,-43
|
||||||
|
p=66,61 v=-12,-90
|
||||||
|
p=67,0 v=-99,-55
|
||||||
|
p=43,94 v=37,-84
|
||||||
|
p=70,15 v=-94,-1
|
||||||
|
p=4,83 v=52,25
|
||||||
|
p=57,41 v=-3,47
|
||||||
|
p=18,89 v=-46,21
|
||||||
|
p=64,12 v=37,98
|
||||||
|
p=36,84 v=-41,-37
|
||||||
|
p=47,62 v=-68,66
|
||||||
|
p=40,13 v=96,-30
|
||||||
|
p=100,0 v=-84,-59
|
||||||
|
p=14,62 v=88,-99
|
||||||
|
p=90,27 v=13,-48
|
||||||
|
p=14,50 v=-33,-95
|
||||||
|
p=57,1 v=-46,-70
|
||||||
|
p=25,42 v=87,7
|
||||||
|
p=82,77 v=-90,-41
|
||||||
|
p=79,11 v=8,48
|
||||||
|
p=64,51 v=43,-64
|
||||||
|
p=93,6 v=-92,5
|
||||||
|
p=41,55 v=-1,-23
|
||||||
|
p=20,89 v=88,-49
|
||||||
|
p=31,2 v=-44,-42
|
||||||
|
p=40,100 v=-73,-92
|
||||||
|
p=62,14 v=-14,-97
|
||||||
|
p=9,4 v=-56,94
|
||||||
|
p=81,69 v=10,-45
|
||||||
|
p=25,1 v=30,-36
|
||||||
|
p=3,28 v=83,82
|
||||||
|
p=62,79 v=-62,62
|
||||||
|
p=4,74 v=16,31
|
||||||
|
p=43,54 v=33,-4
|
||||||
|
p=87,43 v=-87,53
|
||||||
|
p=0,25 v=-52,4
|
||||||
|
p=49,63 v=-94,18
|
||||||
|
p=87,31 v=45,22
|
||||||
|
p=53,30 v=79,-38
|
||||||
|
p=80,92 v=41,5
|
||||||
|
p=36,99 v=-77,56
|
||||||
|
p=74,13 v=42,-25
|
||||||
|
p=78,85 v=-97,-24
|
||||||
|
p=42,33 v=-73,83
|
||||||
|
p=62,66 v=1,4
|
||||||
|
p=100,64 v=-46,-2
|
||||||
|
p=53,86 v=-38,-92
|
||||||
|
p=53,13 v=93,-67
|
||||||
|
p=74,75 v=41,21
|
||||||
|
p=16,25 v=2,19
|
||||||
|
p=39,74 v=-5,-2
|
||||||
|
p=79,56 v=-37,-94
|
||||||
|
p=28,54 v=-80,-21
|
||||||
|
p=50,18 v=-77,-83
|
||||||
|
p=33,98 v=-11,1
|
||||||
|
p=89,79 v=-16,-51
|
||||||
|
p=88,96 v=80,9
|
||||||
|
p=49,90 v=-71,39
|
||||||
|
p=95,89 v=-67,-16
|
||||||
|
p=48,80 v=-99,13
|
||||||
|
p=4,0 v=-51,7
|
||||||
|
p=94,61 v=53,76
|
||||||
|
p=13,36 v=-31,-44
|
||||||
|
p=21,25 v=59,-44
|
||||||
|
p=8,3 v=-80,11
|
||||||
|
p=13,0 v=-80,-59
|
||||||
|
p=26,72 v=90,-29
|
||||||
|
p=51,98 v=-9,41
|
||||||
|
p=95,92 v=87,-49
|
||||||
|
p=6,65 v=-16,23
|
||||||
|
p=63,87 v=72,8
|
||||||
|
p=7,29 v=85,-7
|
||||||
|
p=58,56 v=69,-10
|
||||||
|
p=87,68 v=7,39
|
||||||
|
p=10,32 v=54,-13
|
||||||
|
p=43,100 v=31,11
|
||||||
|
p=46,19 v=74,6
|
||||||
|
p=31,96 v=99,58
|
||||||
|
p=39,34 v=44,-11
|
||||||
|
p=30,55 v=58,76
|
||||||
|
p=79,94 v=10,83
|
||||||
|
p=85,99 v=-87,-47
|
||||||
|
p=92,96 v=14,-92
|
||||||
|
p=35,43 v=-40,-52
|
||||||
|
p=73,57 v=7,-35
|
||||||
|
p=6,7 v=-37,-43
|
||||||
|
p=64,72 v=2,31
|
||||||
|
p=89,100 v=14,50
|
||||||
|
p=11,47 v=-14,76
|
||||||
|
p=64,3 v=-61,41
|
||||||
|
p=73,102 v=41,-4
|
||||||
|
p=62,45 v=5,-52
|
||||||
|
p=42,81 v=-72,-76
|
||||||
|
p=55,18 v=70,-1
|
||||||
|
p=74,72 v=-60,62
|
||||||
|
p=69,100 v=-66,92
|
||||||
|
p=74,45 v=-60,6
|
||||||
|
p=70,23 v=6,24
|
||||||
|
p=8,63 v=18,57
|
||||||
|
p=83,58 v=44,2
|
||||||
|
p=88,28 v=-50,34
|
||||||
|
p=91,12 v=52,63
|
||||||
|
p=56,94 v=-67,-97
|
||||||
|
p=3,73 v=51,35
|
||||||
|
p=3,48 v=6,-98
|
||||||
|
p=83,83 v=-5,39
|
||||||
|
p=40,13 v=-7,10
|
||||||
|
p=9,21 v=-49,-85
|
||||||
|
p=98,7 v=18,40
|
||||||
|
p=58,42 v=3,20
|
||||||
|
p=65,2 v=5,-30
|
||||||
|
p=69,12 v=40,-79
|
||||||
|
p=37,70 v=29,-70
|
||||||
|
p=91,101 v=47,-96
|
||||||
|
p=28,4 v=89,-18
|
||||||
|
p=2,1 v=81,-3
|
||||||
|
p=10,57 v=-13,-33
|
||||||
|
p=22,31 v=-10,-13
|
||||||
|
p=16,39 v=21,-83
|
||||||
|
p=41,59 v=68,65
|
||||||
|
p=34,19 v=-4,28
|
||||||
|
p=38,33 v=59,-93
|
||||||
|
p=42,26 v=23,-80
|
||||||
|
p=56,10 v=5,94
|
||||||
|
p=38,63 v=-73,-68
|
||||||
|
p=59,94 v=-96,-65
|
||||||
|
p=16,35 v=57,53
|
||||||
|
p=30,62 v=-45,71
|
||||||
|
p=32,98 v=-28,-42
|
||||||
|
p=3,0 v=80,52
|
||||||
|
p=39,84 v=-38,17
|
||||||
|
p=58,17 v=36,-3
|
||||||
|
p=14,9 v=-84,-77
|
||||||
|
p=27,86 v=-75,60
|
||||||
|
p=54,12 v=-97,5
|
||||||
|
p=59,9 v=-30,-34
|
||||||
|
p=57,1 v=-42,-53
|
||||||
|
p=12,1 v=-9,-5
|
||||||
|
p=5,59 v=-82,41
|
||||||
|
p=30,34 v=56,-53
|
||||||
|
p=15,84 v=30,-30
|
||||||
|
p=44,13 v=-97,-97
|
||||||
|
p=3,101 v=-16,88
|
||||||
|
p=13,60 v=38,-63
|
||||||
|
p=19,31 v=-42,61
|
||||||
|
p=35,13 v=94,3
|
||||||
|
p=22,52 v=-81,-4
|
||||||
|
p=30,60 v=12,32
|
||||||
|
p=74,84 v=80,-4
|
||||||
|
p=11,44 v=68,23
|
||||||
|
p=23,44 v=88,24
|
||||||
|
p=48,24 v=-11,-72
|
||||||
|
p=52,49 v=33,84
|
||||||
|
p=27,47 v=-72,51
|
||||||
|
p=80,31 v=76,88
|
||||||
|
p=40,34 v=63,-50
|
||||||
|
p=34,11 v=-41,-32
|
||||||
|
p=3,84 v=90,-12
|
||||||
|
p=57,76 v=-38,-61
|
||||||
|
p=76,63 v=-92,-56
|
||||||
|
p=6,80 v=-9,50
|
||||||
|
p=77,62 v=77,4
|
||||||
|
p=37,44 v=57,-22
|
||||||
|
p=94,40 v=13,-19
|
||||||
|
p=43,52 v=66,41
|
||||||
|
p=18,91 v=-79,-55
|
||||||
|
p=90,79 v=65,-40
|
||||||
|
p=7,7 v=-87,32
|
||||||
|
p=11,47 v=-47,-17
|
||||||
|
p=47,0 v=-36,47
|
||||||
|
p=66,37 v=10,-48
|
||||||
|
p=34,96 v=30,-16
|
||||||
|
p=83,81 v=16,-9
|
||||||
|
p=13,85 v=-54,-41
|
||||||
|
p=51,7 v=26,78
|
||||||
|
p=5,94 v=47,-75
|
||||||
|
p=33,90 v=59,91
|
||||||
|
p=61,92 v=90,-53
|
||||||
|
p=7,18 v=-75,-93
|
||||||
|
p=8,32 v=89,-46
|
||||||
|
p=86,28 v=80,-15
|
||||||
|
p=49,88 v=5,-51
|
||||||
|
p=12,99 v=-46,-47
|
||||||
|
p=91,66 v=80,37
|
||||||
|
p=69,35 v=7,90
|
||||||
|
p=78,9 v=7,-61
|
||||||
|
p=97,80 v=21,4
|
||||||
|
p=39,70 v=1,-35
|
||||||
|
p=0,77 v=50,-41
|
||||||
|
p=38,43 v=71,2
|
||||||
|
p=31,42 v=61,-15
|
||||||
|
p=43,76 v=97,-63
|
||||||
|
p=51,15 v=-32,69
|
||||||
|
p=78,42 v=-87,6
|
||||||
|
p=71,18 v=40,38
|
||||||
|
p=95,4 v=-47,-13
|
||||||
|
p=11,1 v=-82,44
|
||||||
|
p=58,101 v=75,61
|
||||||
|
p=57,5 v=93,20
|
||||||
|
p=50,71 v=41,28
|
||||||
|
p=89,78 v=-19,-33
|
||||||
|
p=35,61 v=-63,-1
|
||||||
|
p=56,12 v=35,-34
|
||||||
|
p=91,76 v=-76,-69
|
||||||
|
p=33,31 v=-11,-13
|
||||||
|
p=88,84 v=12,-10
|
||||||
|
p=89,90 v=-26,-86
|
||||||
|
p=18,19 v=-10,-42
|
||||||
|
p=37,95 v=61,-20
|
||||||
|
p=48,83 v=84,-58
|
||||||
|
p=15,85 v=-30,-50
|
||||||
|
p=13,58 v=19,49
|
||||||
|
p=45,35 v=94,-75
|
||||||
|
p=46,81 v=-3,89
|
||||||
|
p=74,6 v=-25,77
|
||||||
|
p=91,22 v=-53,-7
|
||||||
|
p=2,9 v=35,-88
|
||||||
|
p=89,101 v=73,28
|
||||||
|
p=20,11 v=-87,28
|
||||||
|
p=48,71 v=-77,8
|
||||||
|
p=1,69 v=22,-37
|
||||||
|
p=36,57 v=97,84
|
||||||
|
p=25,37 v=-82,-52
|
||||||
|
p=25,87 v=62,7
|
||||||
|
p=0,58 v=16,68
|
||||||
|
p=77,73 v=79,-35
|
||||||
|
p=66,91 v=-96,21
|
||||||
|
p=44,83 v=33,-76
|
||||||
|
p=29,29 v=-10,-64
|
||||||
|
p=89,24 v=98,-5
|
||||||
|
p=92,63 v=83,-66
|
||||||
|
p=10,70 v=20,-39
|
||||||
|
p=78,16 v=-88,90
|
||||||
|
p=18,22 v=-11,-81
|
||||||
|
p=8,54 v=-15,-23
|
||||||
|
p=4,15 v=52,98
|
||||||
|
p=32,68 v=68,-6
|
||||||
|
p=19,98 v=-12,-24
|
||||||
|
p=85,66 v=-24,33
|
||||||
|
p=36,39 v=-75,-13
|
||||||
|
p=81,66 v=-71,-19
|
||||||
|
p=1,27 v=-87,-37
|
||||||
|
p=2,87 v=-15,19
|
||||||
|
p=92,41 v=13,78
|
||||||
|
p=100,40 v=-97,-75
|
||||||
|
p=31,53 v=-99,49
|
||||||
|
p=24,99 v=57,35
|
||||||
|
p=55,17 v=40,-30
|
||||||
|
p=24,60 v=59,-37
|
||||||
|
p=33,62 v=-73,41
|
||||||
|
p=99,58 v=50,37
|
||||||
|
p=5,84 v=-44,-80
|
||||||
|
p=83,65 v=34,88
|
||||||
|
p=84,33 v=-95,-77
|
||||||
|
p=69,63 v=1,-64
|
||||||
|
p=8,88 v=-16,-18
|
||||||
|
p=24,29 v=60,-69
|
||||||
|
p=9,0 v=21,79
|
||||||
|
p=42,87 v=2,-16
|
||||||
|
p=64,44 v=33,8
|
||||||
|
p=78,66 v=-88,-25
|
||||||
|
p=63,76 v=72,29
|
||||||
|
p=98,31 v=82,26
|
||||||
|
p=74,62 v=42,35
|
||||||
|
p=97,66 v=-74,-41
|
||||||
|
p=86,31 v=12,-77
|
||||||
|
p=31,81 v=63,68
|
||||||
|
p=51,31 v=1,51
|
||||||
|
p=77,18 v=3,-10
|
||||||
|
p=64,57 v=72,-27
|
||||||
|
p=60,56 v=-64,-87
|
||||||
|
p=69,60 v=34,32
|
||||||
|
p=8,90 v=-53,5
|
||||||
|
p=3,70 v=62,37
|
||||||
|
p=62,71 v=-35,66
|
||||||
|
p=64,42 v=-71,97
|
||||||
|
p=6,93 v=-99,-1
|
||||||
|
p=5,24 v=89,3
|
||||||
|
p=19,42 v=-73,49
|
||||||
|
p=92,20 v=-92,53
|
||||||
|
p=35,66 v=-73,37
|
||||||
|
p=93,86 v=-91,99
|
||||||
|
p=92,87 v=-22,58
|
||||||
|
p=14,8 v=-49,-55
|
||||||
|
p=86,56 v=-24,41
|
||||||
|
p=50,15 v=99,-65
|
||||||
|
p=92,81 v=79,-43
|
||||||
|
p=25,63 v=-41,2
|
||||||
|
p=71,19 v=43,-71
|
||||||
|
p=3,21 v=51,18
|
||||||
|
p=73,55 v=-94,41
|
||||||
|
p=74,6 v=80,-94
|
||||||
|
p=23,9 v=-9,10
|
||||||
|
p=18,82 v=-16,19
|
||||||
|
p=10,20 v=66,-7
|
||||||
|
p=18,57 v=56,6
|
||||||
|
p=1,89 v=-86,-47
|
||||||
|
p=72,55 v=-95,-29
|
||||||
|
p=95,50 v=-61,1
|
||||||
|
p=97,10 v=48,38
|
||||||
|
p=80,57 v=79,-97
|
||||||
|
p=71,19 v=69,36
|
||||||
|
p=27,71 v=-41,-78
|
||||||
|
p=35,58 v=29,62
|
||||||
|
p=31,73 v=28,66
|
||||||
|
p=37,32 v=65,59
|
||||||
|
p=60,102 v=85,-78
|
||||||
|
p=38,54 v=16,96
|
||||||
|
p=11,41 v=-80,20
|
||||||
|
p=14,68 v=22,99
|
||||||
|
p=48,46 v=-20,-19
|
||||||
|
p=3,79 v=17,19
|
||||||
|
p=10,9 v=-91,-66
|
||||||
|
p=79,0 v=-25,-28
|
||||||
|
p=38,26 v=-69,30
|
||||||
|
p=80,40 v=77,-58
|
||||||
|
p=36,69 v=62,-33
|
||||||
|
p=97,60 v=-68,41
|
||||||
|
p=70,59 v=-29,-76
|
||||||
|
p=81,22 v=-92,-11
|
||||||
|
p=15,55 v=57,43
|
||||||
|
p=59,19 v=75,-28
|
||||||
|
p=41,47 v=-3,18
|
||||||
|
p=28,72 v=23,68
|
||||||
|
p=2,26 v=85,67
|
||||||
|
p=91,13 v=42,-77
|
||||||
|
p=64,78 v=71,97
|
||||||
|
p=91,35 v=14,-17
|
||||||
|
p=41,69 v=63,29
|
||||||
|
p=35,7 v=-69,96
|
||||||
|
p=19,64 v=-12,-68
|
||||||
|
p=77,44 v=70,55
|
||||||
|
p=84,21 v=46,-71
|
||||||
|
p=28,38 v=-76,18
|
||||||
|
p=81,82 v=-20,-19
|
||||||
|
p=91,10 v=48,36
|
||||||
|
p=23,10 v=57,-22
|
||||||
|
p=49,34 v=-77,-4
|
||||||
|
p=73,25 v=75,-48
|
||||||
|
p=67,25 v=-95,-11
|
||||||
|
p=79,16 v=-26,-34
|
||||||
|
p=27,81 v=-3,-47
|
||||||
|
p=3,102 v=61,-94
|
||||||
|
p=85,82 v=-54,21
|
||||||
|
p=84,27 v=-89,94
|
||||||
|
p=40,94 v=64,15
|
||||||
|
p=97,57 v=-98,1
|
||||||
|
p=6,80 v=86,-12
|
||||||
|
p=42,77 v=30,2
|
||||||
|
p=44,5 v=74,-49
|
||||||
|
p=65,99 v=-24,-34
|
||||||
|
p=64,6 v=73,-69
|
||||||
|
p=37,65 v=-5,-29
|
||||||
|
p=23,60 v=-77,-95
|
||||||
|
p=25,35 v=-38,30
|
||||||
|
p=9,9 v=64,87
|
||||||
|
p=54,27 v=-69,63
|
||||||
|
p=53,21 v=-14,-36
|
||||||
|
p=42,31 v=2,30
|
||||||
115
advent_of_code/2024/14/src/main.rs
Normal file
115
advent_of_code/2024/14/src/main.rs
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
use nom::{
|
||||||
|
bytes::complete::tag,
|
||||||
|
character::complete::{i64, multispace1},
|
||||||
|
multi::separated_list1,
|
||||||
|
sequence::{preceded, separated_pair},
|
||||||
|
IResult,
|
||||||
|
};
|
||||||
|
|
||||||
|
fn parse(input: &str) -> IResult<&str, Vec<((i64, i64), (i64, i64))>> {
|
||||||
|
let (input, result) = separated_list1(
|
||||||
|
multispace1,
|
||||||
|
separated_pair(
|
||||||
|
separated_pair(preceded(tag("p="), i64), tag(","), i64),
|
||||||
|
tag(" v="),
|
||||||
|
separated_pair(i64, tag(","), i64),
|
||||||
|
),
|
||||||
|
)(input)?;
|
||||||
|
|
||||||
|
Ok((input, result))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn calc_pos(
|
||||||
|
start_pos: (i64, i64),
|
||||||
|
velocity: (i64, i64),
|
||||||
|
width: i64,
|
||||||
|
height: i64,
|
||||||
|
time: i64,
|
||||||
|
) -> (i64, i64) {
|
||||||
|
let x = (start_pos.0 + velocity.0 * time).rem_euclid(width);
|
||||||
|
let y = (start_pos.1 + velocity.1 * time).rem_euclid(height);
|
||||||
|
|
||||||
|
(x, y)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve_1(input: &str, width: i64, height: i64) -> i64 {
|
||||||
|
let (_, result) = parse(input).unwrap();
|
||||||
|
|
||||||
|
let (mut q1, mut q2, mut q3, mut q4) = (0, 0, 0, 0);
|
||||||
|
for (x_end, y_end) in result
|
||||||
|
.into_iter()
|
||||||
|
.map(|(pos, vel)| calc_pos(pos, vel, width, height, 100))
|
||||||
|
{
|
||||||
|
if x_end < width / 2 && y_end < height / 2 {
|
||||||
|
q1 += 1;
|
||||||
|
} else if x_end > width / 2 && y_end < height / 2 {
|
||||||
|
q2 += 1;
|
||||||
|
} else if x_end < width / 2 && y_end > height / 2 {
|
||||||
|
q3 += 1;
|
||||||
|
} else if x_end > width / 2 && y_end > height / 2 {
|
||||||
|
q4 += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
q1 * q2 * q3 * q4
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve_2(input: &str, width: i64, height: i64) -> i64 {
|
||||||
|
let (_, mut robots) = parse(input).unwrap();
|
||||||
|
|
||||||
|
let mut min_e = i64::MAX;
|
||||||
|
let mut time = 0;
|
||||||
|
|
||||||
|
for t in 0..=100000 {
|
||||||
|
let (mut q1, mut q2, mut q3, mut q4) = (0, 0, 0, 0);
|
||||||
|
for (pos, vel) in robots.iter_mut() {
|
||||||
|
*pos = calc_pos(*pos, *vel, width, height, 1);
|
||||||
|
if pos.0 < width / 2 && pos.1 < height / 2 {
|
||||||
|
q1 += 1;
|
||||||
|
} else if pos.0 > width / 2 && pos.1 < height / 2 {
|
||||||
|
q2 += 1;
|
||||||
|
} else if pos.0 < width / 2 && pos.1 > height / 2 {
|
||||||
|
q3 += 1;
|
||||||
|
} else if pos.0 > width / 2 && pos.1 > height / 2 {
|
||||||
|
q4 += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let e = q1 * q2 * q3 * q4;
|
||||||
|
if min_e > e {
|
||||||
|
time = t;
|
||||||
|
min_e = e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
time + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, this is Patrick!");
|
||||||
|
|
||||||
|
let input = include_str!("../input.txt");
|
||||||
|
|
||||||
|
let result_1 = solve_1(input, 101, 103);
|
||||||
|
println!("The safety factor will be {}", result_1);
|
||||||
|
|
||||||
|
let result_2 = solve_2(input, 101, 103);
|
||||||
|
println!("The time that the easter egg occurs is {}s", result_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_1() {
|
||||||
|
let test_input = include_str!("../test.txt");
|
||||||
|
assert_eq!(solve_1(test_input, 11, 7), 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
//#[test]
|
||||||
|
//fn test_2() {
|
||||||
|
// //let test_input = include_str!("../test.txt");
|
||||||
|
// //assert_eq!(solve_2(test_input), _);
|
||||||
|
//}
|
||||||
|
}
|
||||||
12
advent_of_code/2024/14/test.txt
Normal file
12
advent_of_code/2024/14/test.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
p=0,4 v=3,-3
|
||||||
|
p=6,3 v=-1,-3
|
||||||
|
p=10,3 v=-1,2
|
||||||
|
p=2,0 v=2,-1
|
||||||
|
p=0,0 v=1,3
|
||||||
|
p=3,0 v=-2,-2
|
||||||
|
p=7,6 v=-1,-3
|
||||||
|
p=3,0 v=-1,-2
|
||||||
|
p=9,3 v=2,3
|
||||||
|
p=7,3 v=-1,2
|
||||||
|
p=2,4 v=2,-3
|
||||||
|
p=9,5 v=-3,-3
|
||||||
Reference in New Issue
Block a user