Skip to content

Commit d616c23

Browse files
committed
solve day 5 part 1 in Ruby & Flix
1 parent 62c3e7e commit d616c23

File tree

3 files changed

+403
-0
lines changed

3 files changed

+403
-0
lines changed

day05/input.txt

Lines changed: 283 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
seeds: 515785082 87905039 2104518691 503149843 720333403 385234193 1357904101 283386167 93533455 128569683 2844655470 24994629 3934515023 67327818 2655687716 8403417 3120497449 107756881 4055128129 9498708
2+
3+
seed-to-soil map:
4+
2025334497 3876763368 16729580
5+
1877945250 2032519622 95086460
6+
0 679167893 381174930
7+
717319608 469672599 20842400
8+
1677700339 1823837909 22353530
9+
634816620 1372848321 73458998
10+
2756794066 2812828157 182758452
11+
3324095721 3392359690 456362171
12+
969898963 32396659 196640650
13+
1973031710 2127606082 52302787
14+
4095486882 3893492948 33982348
15+
381174930 591894131 9141137
16+
3247991211 2466896352 76104510
17+
1645303680 0 32396659
18+
3023330013 4070306098 224661198
19+
2329063131 1900645524 131874098
20+
2042064077 3115509825 242853312
21+
969753308 1446307319 145655
22+
4214866116 3035408645 80101180
23+
589310441 1846191439 28201780
24+
4129469230 2811864212 963945
25+
510217282 1276450763 79093159
26+
2989333460 3358363137 33996553
27+
3780457892 2179908869 286987483
28+
738162008 229037309 231591300
29+
2460937229 3927475296 26993487
30+
1205326488 1547352475 237698559
31+
2487930716 2543000862 268863350
32+
4170255211 3998614525 21910631
33+
1543924548 490514999 101379132
34+
1443025047 1446452974 100899501
35+
2939552518 4020525156 49780942
36+
2284917389 3954468783 44145742
37+
617512221 1355543922 17304399
38+
4067445375 3848721861 28041507
39+
1166539613 1785051034 38786875
40+
708275618 460628609 9043990
41+
390316067 1156549548 119901215
42+
4192165842 1877945250 22700274
43+
4130433175 2995586609 39822036
44+
1700053869 601035268 78132625
45+
1778186494 1060342823 96206725
46+
47+
soil-to-fertilizer map:
48+
0 2341619969 92369762
49+
1167455233 3617741643 38094704
50+
1499102298 1681004272 234557927
51+
3376581938 2517836559 179214694
52+
2914723756 619913619 149410902
53+
161434282 0 41510814
54+
3649464352 3314750891 40779782
55+
2317356783 1915562199 186244783
56+
713485962 950249988 47781849
57+
421834722 1125088099 56442466
58+
2507552861 3655836347 34407787
59+
3565617524 2433989731 83846828
60+
2678581348 103843947 189846804
61+
995696604 565539077 54374542
62+
410018942 2894022626 11815780
63+
938203483 303511643 57493121
64+
586429700 998031837 127056262
65+
3064134658 1533041508 147962764
66+
2219062401 2305658720 35961249
67+
2050866563 393391944 168195838
68+
3803001923 4143671264 151296032
69+
814953468 2101806982 123250015
70+
1050071146 1508839376 17695066
71+
2629883889 1526534442 6507066
72+
92369762 3199390767 69064520
73+
3212097422 3355530673 164484516
74+
4049139793 3803001923 245827503
75+
2541960648 3549487250 55536061
76+
2255023650 41510814 62333133
77+
478277188 842097476 108152512
78+
213047569 2697051253 196971373
79+
3954297955 4048829426 48488938
80+
4002786893 4097318364 46352900
81+
1733660225 1181530565 317206338
82+
2649109287 3520015189 29472061
83+
2636390955 3605023311 12718332
84+
2503601566 561587782 3951295
85+
202945096 1498736903 10102473
86+
1140539167 2278742654 26916066
87+
3555796632 293690751 9820892
88+
1205549937 2905838406 293552361
89+
1067766212 769324521 72772955
90+
2597496709 361004764 32387180
91+
761267811 2225056997 53685657
92+
2868428152 3268455287 46295604
93+
94+
fertilizer-to-water map:
95+
152178464 250673346 55422
96+
152233886 237175480 13497866
97+
3154188384 1047083609 4715554
98+
3582007164 1051799163 5818075
99+
3259979115 2494521724 322028049
100+
402907232 308602731 62253347
101+
4236473989 2233392950 58493307
102+
2707774309 1208011821 30397527
103+
3587825239 2917624950 58473157
104+
896622971 631491687 63460153
105+
465160579 250728768 57873963
106+
165731752 0 237175480
107+
2439165 370856078 149739299
108+
3074181106 3899730566 80007278
109+
3059559654 1999627040 14621452
110+
1312214893 3041353489 50783396
111+
960083124 694951840 352131769
112+
2680544515 1972397246 27229794
113+
631491687 1238409348 57882415
114+
3646298396 3092136885 387540126
115+
2592786348 2014248492 87758167
116+
1513392872 3479677011 420053555
117+
2509534881 1681896910 83251467
118+
0 520595377 2439165
119+
2738171836 1352203735 287691765
120+
1362998289 1057617238 150394583
121+
3158903938 2816549773 101075177
122+
4033838522 2291886257 202635467
123+
1933446427 1296291763 55911972
124+
689374102 1765148377 207248869
125+
2152304019 1639895500 42001410
126+
1989358399 2135702712 97690238
127+
3025863601 2102006659 33696053
128+
2087048637 2976098107 65255382
129+
2194305429 3979737844 315229452
130+
131+
water-to-light map:
132+
2953662638 2442860750 178173989
133+
1541545030 2734817557 190358536
134+
754320741 167246313 76339023
135+
1856345147 4205331132 89636164
136+
4252036650 1935658232 42930646
137+
155447228 526835738 21442665
138+
854896092 243585336 283250402
139+
1353462278 548278403 77281269
140+
3280902948 2925176093 9989800
141+
1430743547 1124319386 47116063
142+
3675997643 3263466919 126502268
143+
3189943537 3895004042 77007091
144+
3439702455 2103030459 136553424
145+
1836535231 2083220543 19809916
146+
1207650119 1274680470 145812159
147+
2726058004 2958658296 227604634
148+
3131836627 4078001241 58106910
149+
3290892748 4136108151 65420425
150+
1138146494 74127343 49701217
151+
320969084 0 74127343
152+
3356313173 4038105259 39895982
153+
2313549351 2239583883 7585248
154+
3908092261 2247169131 195691619
155+
205670012 625559672 115299072
156+
830659764 1100083058 24236328
157+
3424990872 3972011133 14711583
158+
80982326 1171435449 74464902
159+
3576255879 1835916468 99741764
160+
176889893 1245900351 28780119
161+
395096427 740858744 359224314
162+
2533259155 1541545030 192798849
163+
3396209155 2706035840 28781717
164+
1945981311 4201528576 3802556
165+
0 123828560 23615345
166+
3802499911 3789411692 105592350
167+
1949783867 3986722716 51382543
168+
2509766752 2935165893 23492403
169+
4167035549 2621034739 85001101
170+
23615345 1420492629 57366981
171+
3266950628 3249514599 13952320
172+
1731903566 1978588878 104631665
173+
2211976762 1734343879 101572589
174+
2001166410 3578601340 210810352
175+
2321134599 3389969187 188632153
176+
1187847711 147443905 19802408
177+
4103783880 3186262930 63251669
178+
179+
light-to-temperature map:
180+
70532163 2072528772 6548798
181+
4144686847 1559382043 150280449
182+
54527625 2056524234 16004538
183+
3807793247 2758133633 336893600
184+
650952420 859025504 83666107
185+
1904509744 3183659444 2786814
186+
780330456 3472688125 531542959
187+
77080961 54527625 154573827
188+
2350216539 1865381176 99600417
189+
3084022977 1715376404 150004772
190+
2107664798 4058224014 213619824
191+
1773073526 793980359 19333216
192+
231654788 2452888407 305245226
193+
3781460885 2030191872 26332362
194+
2939630982 2331937347 79772249
195+
560023472 1070561556 50945056
196+
2478552333 1313852724 245529319
197+
3234027749 526405562 267574797
198+
536900014 4271843838 23123458
199+
1873309968 1709662492 5713912
200+
1879023880 2427402543 25485864
201+
2724081652 2116388017 215549330
202+
1922425580 2079077570 37310447
203+
734618527 813313575 45711929
204+
1702870875 971426988 70202651
205+
3019403231 3186446258 64619746
206+
3767451847 4044214976 14009038
207+
3575105735 1121506612 192346112
208+
1959736027 3324759354 147928771
209+
1792406742 2411709596 15692947
210+
1808099689 1964981593 65210279
211+
1907296558 3095027233 15129022
212+
1311873415 209101452 317304110
213+
2449816956 942691611 28735377
214+
610968528 4004231084 39983892
215+
2321284622 1041629639 28931917
216+
3501602546 3110156255 73503189
217+
1629177525 3251066004 73693350
218+
219+
temperature-to-humidity map:
220+
2698939019 1899653215 333343198
221+
636293562 2781983613 635230295
222+
3050376312 0 239799964
223+
92201313 2779048878 2934735
224+
3290176276 2660814640 25026650
225+
2134083411 2489247727 2136257
226+
3851297241 3604655691 314442217
227+
1483568567 866597732 152309188
228+
333293267 1018906920 303000295
229+
0 2685841290 1438147
230+
1635877755 2687279437 53836876
231+
3032282217 2471153632 18094095
232+
26400590 1558914368 65800723
233+
1271523857 1346869658 212044710
234+
2136219668 239799964 524786786
235+
2661006454 2741116313 37932565
236+
1859145287 1624715091 274938124
237+
1689714631 2491383984 169430656
238+
1438147 1321907215 24962443
239+
3315202926 764586750 102010982
240+
95136048 2232996413 238157219
241+
3604655691 3919097908 90929169
242+
3695584860 4010027077 155712381
243+
244+
humidity-to-location map:
245+
2245504116 1166524785 164267337
246+
2409771453 1729601904 604997365
247+
120247692 2545941209 34587342
248+
3116311219 3036964896 76986730
249+
1512620570 0 147162638
250+
3512343576 4259469787 35497509
251+
1169583301 1336067922 123578155
252+
3921210971 3312190478 126745070
253+
2181345242 2427978815 64158874
254+
0 1459646077 120247692
255+
4223038352 3474502707 71928944
256+
779681654 1579893769 149708135
257+
3894412843 3962661335 26798128
258+
1659783208 1330792122 5275800
259+
500368604 393220323 51352254
260+
3686138511 3754387003 208274332
261+
632498588 2492137689 53803520
262+
1135055763 147162638 34527538
263+
686302108 2334599269 93379546
264+
551720858 2731943364 80777730
265+
306544451 181690176 42409340
266+
4115726396 3237074496 75115982
267+
3547841085 4014859186 138297426
268+
3080744060 3438935548 35567159
269+
1293161456 2812721094 202047724
270+
929389789 960858811 205665974
271+
4190842378 3113951626 32195974
272+
1736823657 516337226 444521585
273+
154835034 224099516 151709417
274+
3036964896 3614528274 43779164
275+
1495209180 375808933 17411390
276+
1665059008 444572577 71764649
277+
348953791 2580528551 151414813
278+
3299611124 3546431651 68096623
279+
3421416680 3146147600 90926896
280+
4047956041 3989459463 25399723
281+
3367707747 3700678070 53708933
282+
4073355764 3658307438 42370632
283+
3193297949 4153156612 106313175

day05/sol.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Part 1
2+
s = File.read("input.txt")
3+
seeds = s.lines[0].split[1..].map(&:to_i)
4+
sections = s.split("\n\n")[1..]
5+
sections.map do |sect|
6+
xs = sect.lines[1..].map{_1.split.map(&:to_i)}
7+
seeds.map! do |seed|
8+
case xs.find{|dest,src,len| (src...src+len) === seed}
9+
in nil then seed
10+
in [dest,src,len] then dest + seed - src
11+
end
12+
end
13+
end
14+
p seeds.min

0 commit comments

Comments
 (0)