Skip to content

Commit aa2491b

Browse files
committed
Add day 14
1 parent 5741c91 commit aa2491b

File tree

5 files changed

+318
-0
lines changed

5 files changed

+318
-0
lines changed

day14_input.txt

+148
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
2+
516,113 -> 521,113
3+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
4+
529,82 -> 533,82
5+
541,157 -> 545,157
6+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
7+
512,111 -> 517,111
8+
538,154 -> 542,154
9+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
10+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
11+
523,76 -> 527,76
12+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
13+
511,82 -> 515,82
14+
514,79 -> 518,79
15+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
16+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
17+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
18+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
19+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
20+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
21+
514,85 -> 518,85
22+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
23+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
24+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
25+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
26+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
27+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
28+
532,85 -> 536,85
29+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
30+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
31+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
32+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
33+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
34+
535,151 -> 539,151
35+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
36+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
37+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
38+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
39+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
40+
526,85 -> 530,85
41+
497,50 -> 497,51 -> 512,51
42+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
43+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
44+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
45+
509,113 -> 514,113
46+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
47+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
48+
538,148 -> 542,148
49+
492,17 -> 496,17
50+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
51+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
52+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
53+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
54+
541,145 -> 545,145
55+
497,50 -> 497,51 -> 512,51
56+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
57+
550,154 -> 554,154
58+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
59+
520,79 -> 524,79
60+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
61+
517,63 -> 517,64 -> 524,64 -> 524,63
62+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
63+
532,154 -> 536,154
64+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
65+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
66+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
67+
521,117 -> 521,118 -> 531,118 -> 531,117
68+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
69+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
70+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
71+
547,157 -> 551,157
72+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
73+
521,117 -> 521,118 -> 531,118 -> 531,117
74+
517,63 -> 517,64 -> 524,64 -> 524,63
75+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
76+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
77+
523,82 -> 527,82
78+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
79+
495,15 -> 499,15
80+
553,157 -> 557,157
81+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
82+
498,17 -> 502,17
83+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
84+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
85+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
86+
547,151 -> 551,151
87+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
88+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
89+
504,17 -> 508,17
90+
544,148 -> 548,148
91+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
92+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
93+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
94+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
95+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
96+
523,113 -> 528,113
97+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
98+
535,157 -> 539,157
99+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
100+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
101+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
102+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
103+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
104+
498,13 -> 502,13
105+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
106+
526,79 -> 530,79
107+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
108+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
109+
521,117 -> 521,118 -> 531,118 -> 531,117
110+
541,151 -> 545,151
111+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
112+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
113+
532,134 -> 532,136 -> 530,136 -> 530,142 -> 542,142 -> 542,136 -> 536,136 -> 536,134
114+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
115+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
116+
519,111 -> 524,111
117+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
118+
529,157 -> 533,157
119+
511,101 -> 511,103 -> 504,103 -> 504,106 -> 517,106 -> 517,103 -> 513,103 -> 513,101
120+
501,15 -> 505,15
121+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
122+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
123+
508,85 -> 512,85
124+
520,85 -> 524,85
125+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
126+
517,76 -> 521,76
127+
517,82 -> 521,82
128+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
129+
523,69 -> 523,70 -> 530,70
130+
520,73 -> 524,73
131+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
132+
544,154 -> 548,154
133+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
134+
511,54 -> 511,56 -> 504,56 -> 504,61 -> 520,61 -> 520,56 -> 515,56 -> 515,54
135+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
136+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
137+
515,109 -> 520,109
138+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
139+
517,63 -> 517,64 -> 524,64 -> 524,63
140+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
141+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
142+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170
143+
523,69 -> 523,70 -> 530,70
144+
528,131 -> 528,121 -> 528,131 -> 530,131 -> 530,127 -> 530,131 -> 532,131 -> 532,124 -> 532,131 -> 534,131 -> 534,126 -> 534,131
145+
501,98 -> 501,93 -> 501,98 -> 503,98 -> 503,97 -> 503,98 -> 505,98 -> 505,90 -> 505,98 -> 507,98 -> 507,92 -> 507,98 -> 509,98 -> 509,94 -> 509,98 -> 511,98 -> 511,93 -> 511,98
146+
489,45 -> 489,38 -> 489,45 -> 491,45 -> 491,38 -> 491,45 -> 493,45 -> 493,40 -> 493,45 -> 495,45 -> 495,39 -> 495,45 -> 497,45 -> 497,43 -> 497,45 -> 499,45 -> 499,43 -> 499,45 -> 501,45 -> 501,36 -> 501,45
147+
489,20 -> 489,24 -> 483,24 -> 483,32 -> 495,32 -> 495,24 -> 492,24 -> 492,20
148+
521,170 -> 521,163 -> 521,170 -> 523,170 -> 523,160 -> 523,170 -> 525,170 -> 525,165 -> 525,170 -> 527,170 -> 527,168 -> 527,170 -> 529,170 -> 529,169 -> 529,170 -> 531,170 -> 531,169 -> 531,170 -> 533,170 -> 533,160 -> 533,170

day14a/Cargo.toml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[package]
2+
name = "day14a"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]

day14a/src/main.rs

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
use std::io::Read;
2+
3+
fn main() {
4+
let mut input = String::new();
5+
std::io::stdin().read_to_string(&mut input).unwrap();
6+
7+
let mut size = [501, 0];
8+
9+
for nums in input.split(&[' ', '-', '>', '\n']).filter(|x| !x.is_empty()) {
10+
for (pos, size) in nums.split(',').map(|num| num.parse::<usize>().unwrap()).zip(&mut size) {
11+
*size = std::cmp::max(pos + 1, *size);
12+
}
13+
}
14+
15+
size[0] += 1;
16+
17+
let mut map = vec![vec![false; size[1]]; size[0]];
18+
19+
for line in input.lines() {
20+
let mut prev: Option<[usize; 2]> = None;
21+
for part in line.split(" -> ") {
22+
let mut curr = [0; 2];
23+
for (src, dst) in part.split(',').map(|num| num.parse::<usize>().unwrap()).zip(&mut curr) {
24+
*dst = src;
25+
}
26+
27+
if let Some(prev) = prev {
28+
if curr[0] > prev[0] {
29+
for x in prev[0]..=curr[0] {
30+
map[x][prev[1]] = true;
31+
}
32+
} else if prev[0] > curr[0] {
33+
for x in curr[0]..=prev[0] {
34+
map[x][prev[1]] = true;
35+
}
36+
} else if curr[1] > prev[1] {
37+
for y in prev[1]..=curr[1] {
38+
map[prev[0]][y] = true;
39+
}
40+
} else if prev[1] > curr[1] {
41+
for y in curr[1]..=prev[1] {
42+
map[prev[0]][y] = true;
43+
}
44+
}
45+
}
46+
47+
prev = Some(curr);
48+
}
49+
}
50+
51+
let mut settled = 0;
52+
53+
'outer: loop {
54+
let mut pos = [500, 0];
55+
loop {
56+
let new_y = pos[1] + 1;
57+
if new_y >= size[1] {
58+
break 'outer;
59+
} else if !map[pos[0]][new_y] {
60+
pos = [pos[0], new_y];
61+
} else if !map[pos[0] - 1][new_y] {
62+
pos = [pos[0] - 1, new_y];
63+
} else if !map[pos[0] + 1][new_y] {
64+
pos = [pos[0] + 1, new_y];
65+
} else {
66+
map[pos[0]][pos[1]] = true;
67+
settled += 1;
68+
break;
69+
}
70+
}
71+
}
72+
73+
println!("{}", settled);
74+
}

day14b/Cargo.toml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[package]
2+
name = "day14b"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]

0 commit comments

Comments
 (0)