diff options
Diffstat (limited to '2022/day4')
-rw-r--r-- | 2022/day4/example | 6 | ||||
-rw-r--r-- | 2022/day4/input | 1000 | ||||
-rw-r--r-- | 2022/day4/part1/Cargo.toml | 9 | ||||
-rw-r--r-- | 2022/day4/part1/src/main.rs | 50 | ||||
-rw-r--r-- | 2022/day4/part2/Cargo.toml | 9 | ||||
-rw-r--r-- | 2022/day4/part2/src/main.rs | 49 |
6 files changed, 1123 insertions, 0 deletions
diff --git a/2022/day4/example b/2022/day4/example new file mode 100644 index 0000000..9f9e9cf --- /dev/null +++ b/2022/day4/example | |||
@@ -0,0 +1,6 @@ | |||
1 | 2-4,6-8 | ||
2 | 2-3,4-5 | ||
3 | 5-7,7-9 | ||
4 | 2-8,3-7 | ||
5 | 6-6,4-6 | ||
6 | 2-6,4-8 | ||
diff --git a/2022/day4/input b/2022/day4/input new file mode 100644 index 0000000..20a83ca --- /dev/null +++ b/2022/day4/input | |||
@@ -0,0 +1,1000 @@ | |||
1 | 30-31,2-31 | ||
2 | 6-92,4-5 | ||
3 | 35-39,42-44 | ||
4 | 35-95,35-95 | ||
5 | 12-98,99-99 | ||
6 | 10-15,16-94 | ||
7 | 37-85,84-84 | ||
8 | 2-23,31-56 | ||
9 | 52-68,51-69 | ||
10 | 47-62,25-52 | ||
11 | 9-62,61-61 | ||
12 | 78-99,77-99 | ||
13 | 92-94,11-93 | ||
14 | 77-83,62-76 | ||
15 | 3-7,29-59 | ||
16 | 12-96,96-97 | ||
17 | 48-48,12-47 | ||
18 | 72-86,71-86 | ||
19 | 6-90,90-95 | ||
20 | 5-92,2-4 | ||
21 | 11-63,1-64 | ||
22 | 72-72,72-82 | ||
23 | 65-68,68-69 | ||
24 | 3-99,5-99 | ||
25 | 5-80,5-5 | ||
26 | 40-93,41-93 | ||
27 | 27-31,25-58 | ||
28 | 6-93,93-93 | ||
29 | 25-75,75-76 | ||
30 | 31-78,79-79 | ||
31 | 16-60,33-86 | ||
32 | 38-65,39-97 | ||
33 | 46-52,45-88 | ||
34 | 13-64,12-80 | ||
35 | 53-53,35-52 | ||
36 | 32-38,12-30 | ||
37 | 43-49,42-96 | ||
38 | 4-23,24-77 | ||
39 | 32-63,27-64 | ||
40 | 46-72,23-73 | ||
41 | 78-89,56-88 | ||
42 | 42-78,79-79 | ||
43 | 2-87,2-88 | ||
44 | 51-57,57-58 | ||
45 | 56-63,55-63 | ||
46 | 2-12,21-62 | ||
47 | 5-7,6-41 | ||
48 | 57-86,87-92 | ||
49 | 17-18,17-42 | ||
50 | 11-84,7-10 | ||
51 | 13-75,4-75 | ||
52 | 15-76,14-14 | ||
53 | 96-96,2-97 | ||
54 | 68-94,43-95 | ||
55 | 57-66,67-85 | ||
56 | 5-52,20-88 | ||
57 | 25-62,25-62 | ||
58 | 3-82,81-83 | ||
59 | 88-89,85-88 | ||
60 | 31-49,30-68 | ||
61 | 58-60,59-61 | ||
62 | 16-33,15-16 | ||
63 | 13-97,13-66 | ||
64 | 4-87,10-86 | ||
65 | 6-6,7-99 | ||
66 | 33-35,34-98 | ||
67 | 48-88,82-89 | ||
68 | 31-73,30-74 | ||
69 | 1-95,2-95 | ||
70 | 11-87,10-86 | ||
71 | 60-61,21-60 | ||
72 | 51-91,51-52 | ||
73 | 15-37,16-38 | ||
74 | 5-10,10-32 | ||
75 | 23-25,24-34 | ||
76 | 21-40,21-40 | ||
77 | 12-52,13-31 | ||
78 | 10-10,10-94 | ||
79 | 41-82,4-82 | ||
80 | 5-48,6-34 | ||
81 | 73-81,42-72 | ||
82 | 62-77,76-82 | ||
83 | 41-82,56-83 | ||
84 | 19-52,18-39 | ||
85 | 19-92,54-93 | ||
86 | 2-39,2-40 | ||
87 | 95-96,3-95 | ||
88 | 7-70,6-92 | ||
89 | 7-89,6-58 | ||
90 | 67-88,68-80 | ||
91 | 14-74,73-86 | ||
92 | 41-41,33-40 | ||
93 | 2-91,8-90 | ||
94 | 69-81,11-80 | ||
95 | 8-90,9-98 | ||
96 | 62-87,86-86 | ||
97 | 7-70,39-69 | ||
98 | 4-9,3-12 | ||
99 | 4-96,11-95 | ||
100 | 1-21,3-22 | ||
101 | 18-24,92-99 | ||
102 | 34-87,7-90 | ||
103 | 96-99,82-88 | ||
104 | 6-50,6-34 | ||
105 | 13-53,12-54 | ||
106 | 2-98,3-95 | ||
107 | 8-11,17-91 | ||
108 | 26-92,3-56 | ||
109 | 36-61,46-84 | ||
110 | 86-86,22-85 | ||
111 | 20-76,76-76 | ||
112 | 21-80,21-30 | ||
113 | 34-78,55-90 | ||
114 | 12-96,11-95 | ||
115 | 43-43,15-44 | ||
116 | 54-88,53-89 | ||
117 | 37-37,50-66 | ||
118 | 23-95,7-11 | ||
119 | 7-58,21-59 | ||
120 | 3-5,4-68 | ||
121 | 5-75,8-76 | ||
122 | 42-68,42-67 | ||
123 | 36-36,36-47 | ||
124 | 9-69,9-92 | ||
125 | 30-56,36-80 | ||
126 | 12-85,13-84 | ||
127 | 11-64,65-87 | ||
128 | 41-60,60-61 | ||
129 | 2-30,31-41 | ||
130 | 23-60,9-35 | ||
131 | 87-89,15-88 | ||
132 | 4-97,96-98 | ||
133 | 9-92,9-91 | ||
134 | 40-66,66-66 | ||
135 | 39-95,69-96 | ||
136 | 48-87,23-47 | ||
137 | 5-96,6-95 | ||
138 | 18-66,19-65 | ||
139 | 5-38,39-61 | ||
140 | 12-92,93-93 | ||
141 | 9-97,10-97 | ||
142 | 16-51,50-67 | ||
143 | 3-14,14-28 | ||
144 | 7-7,8-88 | ||
145 | 6-45,5-36 | ||
146 | 58-58,40-58 | ||
147 | 8-56,7-56 | ||
148 | 5-15,6-14 | ||
149 | 97-97,7-96 | ||
150 | 26-70,27-94 | ||
151 | 20-21,20-91 | ||
152 | 3-16,3-13 | ||
153 | 9-10,9-92 | ||
154 | 16-81,67-94 | ||
155 | 72-88,6-73 | ||
156 | 4-88,3-68 | ||
157 | 25-53,24-54 | ||
158 | 63-75,63-74 | ||
159 | 31-31,31-56 | ||
160 | 1-84,1-83 | ||
161 | 41-89,40-67 | ||
162 | 4-53,5-54 | ||
163 | 13-83,13-14 | ||
164 | 11-87,11-86 | ||
165 | 4-63,4-63 | ||
166 | 9-96,8-97 | ||
167 | 2-74,1-88 | ||
168 | 40-83,39-83 | ||
169 | 46-71,45-75 | ||
170 | 4-74,74-75 | ||
171 | 99-99,72-98 | ||
172 | 33-51,52-82 | ||
173 | 22-69,22-23 | ||
174 | 35-36,36-91 | ||
175 | 8-97,97-98 | ||
176 | 18-20,19-94 | ||
177 | 6-16,7-17 | ||
178 | 35-36,36-97 | ||
179 | 4-78,79-79 | ||
180 | 14-69,4-14 | ||
181 | 50-64,19-51 | ||
182 | 10-31,15-17 | ||
183 | 52-74,74-74 | ||
184 | 42-91,90-91 | ||
185 | 35-69,10-70 | ||
186 | 1-3,4-4 | ||
187 | 37-66,67-67 | ||
188 | 6-92,73-74 | ||
189 | 21-96,21-97 | ||
190 | 6-37,6-68 | ||
191 | 25-78,79-92 | ||
192 | 78-88,65-75 | ||
193 | 14-99,8-8 | ||
194 | 39-66,54-67 | ||
195 | 33-80,79-91 | ||
196 | 15-83,84-84 | ||
197 | 51-51,10-50 | ||
198 | 72-80,72-81 | ||
199 | 4-92,2-24 | ||
200 | 33-93,92-94 | ||
201 | 4-10,4-68 | ||
202 | 8-94,7-96 | ||
203 | 1-39,38-69 | ||
204 | 6-36,36-37 | ||
205 | 86-86,31-85 | ||
206 | 77-94,76-96 | ||
207 | 8-75,17-76 | ||
208 | 7-93,7-45 | ||
209 | 8-61,40-70 | ||
210 | 17-29,32-94 | ||
211 | 26-26,12-25 | ||
212 | 14-94,10-12 | ||
213 | 29-42,32-39 | ||
214 | 2-91,2-3 | ||
215 | 12-85,28-86 | ||
216 | 57-70,71-90 | ||
217 | 9-16,17-87 | ||
218 | 17-55,18-55 | ||
219 | 18-98,19-19 | ||
220 | 88-88,22-87 | ||
221 | 5-93,4-92 | ||
222 | 75-76,76-84 | ||
223 | 5-6,6-41 | ||
224 | 42-94,36-41 | ||
225 | 52-66,1-62 | ||
226 | 5-82,4-4 | ||
227 | 1-87,3-88 | ||
228 | 47-58,56-61 | ||
229 | 7-57,7-97 | ||
230 | 39-93,33-93 | ||
231 | 31-48,20-32 | ||
232 | 18-81,19-82 | ||
233 | 16-77,17-78 | ||
234 | 2-2,4-43 | ||
235 | 22-23,23-93 | ||
236 | 10-11,15-68 | ||
237 | 89-95,15-88 | ||
238 | 19-69,18-18 | ||
239 | 85-98,34-84 | ||
240 | 47-73,29-52 | ||
241 | 56-56,23-55 | ||
242 | 2-97,2-94 | ||
243 | 34-64,17-63 | ||
244 | 46-46,47-75 | ||
245 | 15-90,91-91 | ||
246 | 63-63,35-62 | ||
247 | 46-56,52-89 | ||
248 | 82-90,82-90 | ||
249 | 17-23,5-7 | ||
250 | 7-79,8-79 | ||
251 | 40-76,39-71 | ||
252 | 81-82,11-99 | ||
253 | 31-41,37-44 | ||
254 | 97-98,1-98 | ||
255 | 13-92,11-16 | ||
256 | 63-63,3-62 | ||
257 | 10-23,27-46 | ||
258 | 18-99,19-80 | ||
259 | 43-65,55-56 | ||
260 | 14-14,14-20 | ||
261 | 14-75,15-74 | ||
262 | 24-75,12-45 | ||
263 | 32-32,33-83 | ||
264 | 4-92,2-3 | ||
265 | 35-50,34-72 | ||
266 | 11-90,91-91 | ||
267 | 62-84,78-97 | ||
268 | 64-64,24-65 | ||
269 | 13-93,12-94 | ||
270 | 70-89,58-88 | ||
271 | 35-44,36-43 | ||
272 | 57-90,91-91 | ||
273 | 19-20,20-96 | ||
274 | 33-96,26-87 | ||
275 | 9-61,10-62 | ||
276 | 2-81,1-3 | ||
277 | 69-98,69-98 | ||
278 | 60-66,64-97 | ||
279 | 8-8,4-7 | ||
280 | 33-76,32-77 | ||
281 | 35-96,34-86 | ||
282 | 87-92,66-86 | ||
283 | 5-39,8-67 | ||
284 | 27-78,79-80 | ||
285 | 5-98,1-1 | ||
286 | 6-79,5-95 | ||
287 | 65-87,88-88 | ||
288 | 50-98,49-49 | ||
289 | 55-58,54-60 | ||
290 | 13-97,12-96 | ||
291 | 74-74,1-73 | ||
292 | 12-61,64-74 | ||
293 | 10-98,10-11 | ||
294 | 68-70,17-69 | ||
295 | 41-58,13-65 | ||
296 | 7-77,6-77 | ||
297 | 50-95,41-49 | ||
298 | 4-68,2-4 | ||
299 | 14-54,14-40 | ||
300 | 59-93,60-82 | ||
301 | 21-95,26-95 | ||
302 | 41-81,41-62 | ||
303 | 41-89,40-88 | ||
304 | 21-39,22-40 | ||
305 | 30-94,29-88 | ||
306 | 1-93,1-93 | ||
307 | 5-78,4-79 | ||
308 | 15-86,85-87 | ||
309 | 89-90,17-89 | ||
310 | 47-85,48-85 | ||
311 | 84-84,83-85 | ||
312 | 6-98,6-6 | ||
313 | 3-92,3-93 | ||
314 | 9-9,8-60 | ||
315 | 36-90,6-35 | ||
316 | 57-61,56-58 | ||
317 | 4-92,3-93 | ||
318 | 7-69,8-69 | ||
319 | 78-78,4-79 | ||
320 | 52-93,53-93 | ||
321 | 30-90,30-91 | ||
322 | 58-78,77-79 | ||
323 | 21-41,42-53 | ||
324 | 16-37,6-38 | ||
325 | 2-77,3-77 | ||
326 | 6-55,17-69 | ||
327 | 36-73,37-71 | ||
328 | 93-94,26-93 | ||
329 | 22-79,22-79 | ||
330 | 11-92,91-93 | ||
331 | 1-62,3-65 | ||
332 | 9-65,8-64 | ||
333 | 11-32,7-33 | ||
334 | 5-94,2-5 | ||
335 | 80-82,80-81 | ||
336 | 46-77,45-76 | ||
337 | 2-98,1-99 | ||
338 | 2-4,6-68 | ||
339 | 56-83,55-82 | ||
340 | 12-14,13-98 | ||
341 | 78-90,5-80 | ||
342 | 3-69,2-2 | ||
343 | 83-83,76-82 | ||
344 | 3-99,1-1 | ||
345 | 28-72,28-50 | ||
346 | 57-67,32-54 | ||
347 | 4-99,7-98 | ||
348 | 18-18,19-48 | ||
349 | 79-85,84-84 | ||
350 | 83-89,81-87 | ||
351 | 31-89,30-87 | ||
352 | 49-72,49-71 | ||
353 | 28-29,28-51 | ||
354 | 48-97,1-47 | ||
355 | 13-45,8-12 | ||
356 | 24-75,25-75 | ||
357 | 63-89,76-86 | ||
358 | 16-23,15-16 | ||
359 | 25-49,26-48 | ||
360 | 17-94,16-88 | ||
361 | 6-95,7-96 | ||
362 | 87-90,86-89 | ||
363 | 11-93,3-95 | ||
364 | 6-66,5-65 | ||
365 | 97-99,39-98 | ||
366 | 23-66,24-65 | ||
367 | 54-56,55-70 | ||
368 | 92-97,26-90 | ||
369 | 7-86,7-87 | ||
370 | 60-78,77-79 | ||
371 | 90-95,71-94 | ||
372 | 32-87,33-87 | ||
373 | 13-13,14-72 | ||
374 | 12-86,6-87 | ||
375 | 24-44,45-75 | ||
376 | 5-96,5-97 | ||
377 | 2-83,7-79 | ||
378 | 95-97,1-90 | ||
379 | 72-80,73-75 | ||
380 | 11-85,12-86 | ||
381 | 7-50,8-8 | ||
382 | 35-99,55-79 | ||
383 | 56-98,57-99 | ||
384 | 6-87,7-87 | ||
385 | 28-72,27-71 | ||
386 | 20-77,78-83 | ||
387 | 8-67,68-83 | ||
388 | 10-68,9-9 | ||
389 | 35-63,35-64 | ||
390 | 90-90,90-90 | ||
391 | 5-97,1-99 | ||
392 | 10-93,9-19 | ||
393 | 6-90,4-77 | ||
394 | 46-75,80-97 | ||
395 | 9-77,10-82 | ||
396 | 73-88,74-81 | ||
397 | 43-65,43-44 | ||
398 | 66-82,66-81 | ||
399 | 62-63,63-77 | ||
400 | 35-76,11-77 | ||
401 | 22-93,89-90 | ||
402 | 3-96,2-3 | ||
403 | 11-29,2-33 | ||
404 | 75-82,62-81 | ||
405 | 46-47,46-53 | ||
406 | 9-99,8-98 | ||
407 | 32-93,33-87 | ||
408 | 47-51,52-60 | ||
409 | 18-83,84-84 | ||
410 | 31-70,31-69 | ||
411 | 26-93,19-92 | ||
412 | 93-93,4-92 | ||
413 | 2-14,4-35 | ||
414 | 1-98,36-99 | ||
415 | 7-83,82-96 | ||
416 | 95-95,32-95 | ||
417 | 34-39,9-38 | ||
418 | 2-63,62-93 | ||
419 | 24-98,99-99 | ||
420 | 26-50,89-93 | ||
421 | 82-97,35-81 | ||
422 | 22-33,16-33 | ||
423 | 1-5,11-66 | ||
424 | 9-63,9-63 | ||
425 | 36-36,36-77 | ||
426 | 5-98,6-99 | ||
427 | 22-93,50-92 | ||
428 | 89-92,89-93 | ||
429 | 48-90,91-91 | ||
430 | 6-88,7-89 | ||
431 | 27-38,38-84 | ||
432 | 9-87,11-40 | ||
433 | 24-83,23-82 | ||
434 | 1-69,1-68 | ||
435 | 16-67,62-65 | ||
436 | 13-15,1-85 | ||
437 | 41-65,40-42 | ||
438 | 19-77,20-77 | ||
439 | 44-93,45-93 | ||
440 | 27-94,94-97 | ||
441 | 12-97,12-96 | ||
442 | 9-38,8-48 | ||
443 | 22-49,6-49 | ||
444 | 12-18,13-52 | ||
445 | 14-52,13-14 | ||
446 | 12-51,13-52 | ||
447 | 10-36,37-37 | ||
448 | 14-72,13-15 | ||
449 | 2-99,72-81 | ||
450 | 21-34,22-22 | ||
451 | 86-86,60-85 | ||
452 | 20-36,20-20 | ||
453 | 10-96,11-96 | ||
454 | 14-24,15-23 | ||
455 | 8-96,8-95 | ||
456 | 16-22,22-23 | ||
457 | 32-90,33-97 | ||
458 | 7-31,32-67 | ||
459 | 35-68,22-77 | ||
460 | 3-69,5-69 | ||
461 | 13-62,12-61 | ||
462 | 26-32,27-32 | ||
463 | 68-77,67-76 | ||
464 | 5-99,6-98 | ||
465 | 2-56,8-65 | ||
466 | 96-99,11-67 | ||
467 | 3-25,15-24 | ||
468 | 25-91,84-90 | ||
469 | 9-39,10-38 | ||
470 | 24-94,23-24 | ||
471 | 78-80,29-79 | ||
472 | 4-47,5-85 | ||
473 | 39-81,81-82 | ||
474 | 33-33,13-32 | ||
475 | 31-69,32-83 | ||
476 | 19-95,17-21 | ||
477 | 75-75,74-74 | ||
478 | 14-89,15-98 | ||
479 | 4-99,6-98 | ||
480 | 60-90,59-66 | ||
481 | 50-72,46-73 | ||
482 | 26-84,25-49 | ||
483 | 9-77,8-77 | ||
484 | 48-99,49-94 | ||
485 | 91-95,10-90 | ||
486 | 7-63,24-64 | ||
487 | 79-85,11-80 | ||
488 | 98-99,20-82 | ||
489 | 2-98,1-97 | ||
490 | 56-68,54-67 | ||
491 | 30-30,31-87 | ||
492 | 89-96,58-88 | ||
493 | 6-56,3-5 | ||
494 | 12-49,15-62 | ||
495 | 26-33,26-66 | ||
496 | 18-18,19-98 | ||
497 | 13-27,14-26 | ||
498 | 12-15,3-19 | ||
499 | 5-98,46-98 | ||
500 | 4-89,3-90 | ||
501 | 5-15,5-19 | ||
502 | 85-88,45-87 | ||
503 | 94-97,97-98 | ||
504 | 24-34,34-77 | ||
505 | 55-56,2-55 | ||
506 | 6-86,7-87 | ||
507 | 42-50,43-50 | ||
508 | 16-57,17-58 | ||
509 | 3-22,2-3 | ||
510 | 56-57,56-96 | ||
511 | 5-91,82-92 | ||
512 | 30-53,53-54 | ||
513 | 12-25,13-47 | ||
514 | 72-90,90-91 | ||
515 | 15-49,49-89 | ||
516 | 5-81,6-37 | ||
517 | 57-58,58-82 | ||
518 | 11-65,2-10 | ||
519 | 41-97,42-96 | ||
520 | 55-71,54-70 | ||
521 | 4-81,1-98 | ||
522 | 2-65,1-49 | ||
523 | 7-45,6-45 | ||
524 | 98-98,8-98 | ||
525 | 8-93,41-92 | ||
526 | 1-90,2-98 | ||
527 | 14-93,43-92 | ||
528 | 66-97,98-98 | ||
529 | 36-87,87-88 | ||
530 | 2-62,4-61 | ||
531 | 22-76,23-76 | ||
532 | 49-54,50-55 | ||
533 | 50-53,52-94 | ||
534 | 45-95,75-96 | ||
535 | 22-77,78-78 | ||
536 | 71-73,72-86 | ||
537 | 9-83,10-82 | ||
538 | 1-56,53-54 | ||
539 | 71-71,63-70 | ||
540 | 7-73,7-8 | ||
541 | 6-9,6-66 | ||
542 | 10-98,97-98 | ||
543 | 4-50,50-50 | ||
544 | 7-95,7-91 | ||
545 | 6-7,7-96 | ||
546 | 73-73,1-73 | ||
547 | 43-68,44-77 | ||
548 | 26-30,25-31 | ||
549 | 92-92,9-92 | ||
550 | 88-89,1-88 | ||
551 | 12-97,96-98 | ||
552 | 91-91,59-90 | ||
553 | 4-9,3-16 | ||
554 | 16-97,96-96 | ||
555 | 50-89,49-90 | ||
556 | 94-96,84-95 | ||
557 | 55-71,70-72 | ||
558 | 16-90,5-16 | ||
559 | 1-96,3-95 | ||
560 | 5-35,7-34 | ||
561 | 16-72,16-54 | ||
562 | 3-99,1-2 | ||
563 | 8-87,10-88 | ||
564 | 10-98,10-98 | ||
565 | 8-67,4-69 | ||
566 | 23-79,72-72 | ||
567 | 17-74,17-75 | ||
568 | 57-77,77-78 | ||
569 | 74-84,85-98 | ||
570 | 22-64,30-65 | ||
571 | 3-73,1-72 | ||
572 | 1-78,31-91 | ||
573 | 4-93,4-94 | ||
574 | 51-88,51-79 | ||
575 | 5-19,19-99 | ||
576 | 68-68,31-67 | ||
577 | 2-98,3-3 | ||
578 | 48-63,47-64 | ||
579 | 67-71,72-73 | ||
580 | 9-42,9-54 | ||
581 | 2-50,2-39 | ||
582 | 53-53,3-54 | ||
583 | 36-37,36-69 | ||
584 | 63-74,64-73 | ||
585 | 14-65,13-65 | ||
586 | 41-94,98-98 | ||
587 | 1-60,6-99 | ||
588 | 95-98,80-94 | ||
589 | 71-74,32-78 | ||
590 | 31-31,31-31 | ||
591 | 6-7,6-33 | ||
592 | 5-95,96-98 | ||
593 | 5-93,6-94 | ||
594 | 52-88,51-89 | ||
595 | 55-76,55-77 | ||
596 | 4-98,3-96 | ||
597 | 59-89,58-94 | ||
598 | 10-88,9-86 | ||
599 | 13-97,13-96 | ||
600 | 18-97,10-16 | ||
601 | 7-98,4-97 | ||
602 | 84-85,14-84 | ||
603 | 26-88,76-87 | ||
604 | 52-72,71-81 | ||
605 | 38-52,39-52 | ||
606 | 22-88,1-89 | ||
607 | 7-97,2-7 | ||
608 | 4-25,3-25 | ||
609 | 43-73,42-74 | ||
610 | 26-26,25-47 | ||
611 | 34-84,40-84 | ||
612 | 8-69,7-68 | ||
613 | 2-52,1-85 | ||
614 | 52-60,52-61 | ||
615 | 38-71,37-70 | ||
616 | 28-86,27-85 | ||
617 | 99-99,7-98 | ||
618 | 45-67,8-81 | ||
619 | 7-93,7-58 | ||
620 | 37-56,28-56 | ||
621 | 29-99,66-98 | ||
622 | 78-98,7-97 | ||
623 | 4-72,3-77 | ||
624 | 1-3,2-73 | ||
625 | 1-14,2-35 | ||
626 | 12-13,12-95 | ||
627 | 40-84,84-84 | ||
628 | 12-56,28-47 | ||
629 | 3-96,1-39 | ||
630 | 58-74,74-74 | ||
631 | 24-32,24-32 | ||
632 | 11-91,5-10 | ||
633 | 41-69,36-97 | ||
634 | 9-92,8-59 | ||
635 | 40-51,39-52 | ||
636 | 97-99,16-96 | ||
637 | 34-96,33-69 | ||
638 | 68-86,30-87 | ||
639 | 45-96,44-98 | ||
640 | 12-89,6-12 | ||
641 | 5-81,32-89 | ||
642 | 5-8,6-9 | ||
643 | 4-42,1-2 | ||
644 | 32-42,79-96 | ||
645 | 5-96,4-95 | ||
646 | 54-62,12-62 | ||
647 | 30-86,86-86 | ||
648 | 50-58,58-58 | ||
649 | 41-61,40-62 | ||
650 | 1-99,2-99 | ||
651 | 21-52,20-20 | ||
652 | 17-69,1-17 | ||
653 | 3-97,2-96 | ||
654 | 35-37,36-57 | ||
655 | 8-32,9-11 | ||
656 | 3-4,4-99 | ||
657 | 92-96,72-92 | ||
658 | 2-3,2-90 | ||
659 | 34-40,41-69 | ||
660 | 81-98,65-80 | ||
661 | 12-57,58-58 | ||
662 | 39-40,14-39 | ||
663 | 47-77,78-93 | ||
664 | 5-5,6-91 | ||
665 | 24-87,86-93 | ||
666 | 31-80,30-80 | ||
667 | 32-82,33-55 | ||
668 | 61-75,62-74 | ||
669 | 16-98,16-99 | ||
670 | 19-21,22-86 | ||
671 | 54-54,16-53 | ||
672 | 40-74,21-28 | ||
673 | 20-28,28-76 | ||
674 | 94-96,47-71 | ||
675 | 25-74,74-75 | ||
676 | 39-81,3-67 | ||
677 | 5-97,2-52 | ||
678 | 21-63,62-62 | ||
679 | 7-53,6-84 | ||
680 | 60-88,59-60 | ||
681 | 23-61,24-61 | ||
682 | 76-93,77-94 | ||
683 | 17-30,30-86 | ||
684 | 10-23,9-77 | ||
685 | 6-90,5-96 | ||
686 | 38-69,37-39 | ||
687 | 1-3,4-94 | ||
688 | 73-74,3-74 | ||
689 | 70-83,41-84 | ||
690 | 72-79,78-83 | ||
691 | 56-76,15-67 | ||
692 | 92-92,6-93 | ||
693 | 2-90,89-89 | ||
694 | 19-19,20-90 | ||
695 | 18-79,17-80 | ||
696 | 11-11,2-16 | ||
697 | 95-95,57-95 | ||
698 | 51-93,52-86 | ||
699 | 47-52,53-96 | ||
700 | 1-5,13-43 | ||
701 | 44-63,62-64 | ||
702 | 43-97,42-42 | ||
703 | 46-54,45-53 | ||
704 | 7-61,8-21 | ||
705 | 18-79,41-80 | ||
706 | 54-56,28-55 | ||
707 | 7-54,11-54 | ||
708 | 12-61,62-62 | ||
709 | 80-81,80-94 | ||
710 | 38-39,38-76 | ||
711 | 8-94,26-83 | ||
712 | 3-66,2-4 | ||
713 | 6-27,7-26 | ||
714 | 2-96,71-86 | ||
715 | 67-99,66-98 | ||
716 | 28-73,27-90 | ||
717 | 2-93,1-93 | ||
718 | 80-95,72-94 | ||
719 | 88-90,24-89 | ||
720 | 93-93,22-93 | ||
721 | 36-86,51-92 | ||
722 | 25-63,24-63 | ||
723 | 90-91,12-84 | ||
724 | 9-46,10-46 | ||
725 | 31-31,17-31 | ||
726 | 51-52,49-51 | ||
727 | 14-18,2-12 | ||
728 | 72-73,64-73 | ||
729 | 6-82,10-81 | ||
730 | 58-84,15-15 | ||
731 | 51-78,52-68 | ||
732 | 54-56,60-68 | ||
733 | 78-79,6-78 | ||
734 | 96-96,95-96 | ||
735 | 28-81,43-82 | ||
736 | 5-95,5-5 | ||
737 | 2-17,1-99 | ||
738 | 10-94,9-61 | ||
739 | 85-87,3-91 | ||
740 | 2-73,14-72 | ||
741 | 95-95,21-94 | ||
742 | 17-57,37-81 | ||
743 | 95-95,4-95 | ||
744 | 28-84,12-93 | ||
745 | 4-98,1-1 | ||
746 | 96-97,7-97 | ||
747 | 60-99,61-99 | ||
748 | 97-97,7-98 | ||
749 | 73-74,5-74 | ||
750 | 59-94,60-60 | ||
751 | 83-85,84-91 | ||
752 | 2-5,5-40 | ||
753 | 29-79,28-78 | ||
754 | 37-67,26-54 | ||
755 | 28-39,10-41 | ||
756 | 84-84,85-85 | ||
757 | 19-69,12-68 | ||
758 | 29-31,30-32 | ||
759 | 58-77,57-59 | ||
760 | 17-25,24-26 | ||
761 | 37-80,36-81 | ||
762 | 16-84,16-97 | ||
763 | 3-97,1-96 | ||
764 | 7-63,7-64 | ||
765 | 7-54,6-54 | ||
766 | 14-47,13-46 | ||
767 | 13-64,55-67 | ||
768 | 19-36,35-35 | ||
769 | 67-80,67-79 | ||
770 | 8-66,5-35 | ||
771 | 56-93,44-55 | ||
772 | 6-74,15-90 | ||
773 | 64-85,21-71 | ||
774 | 22-22,23-27 | ||
775 | 16-87,87-88 | ||
776 | 80-82,81-84 | ||
777 | 3-89,2-89 | ||
778 | 43-95,16-96 | ||
779 | 67-69,3-88 | ||
780 | 8-82,4-95 | ||
781 | 28-93,28-93 | ||
782 | 23-62,22-24 | ||
783 | 73-98,73-73 | ||
784 | 84-92,91-91 | ||
785 | 55-81,54-55 | ||
786 | 52-60,40-59 | ||
787 | 19-20,20-95 | ||
788 | 30-90,29-90 | ||
789 | 57-72,23-71 | ||
790 | 71-74,74-75 | ||
791 | 9-88,38-92 | ||
792 | 44-89,43-90 | ||
793 | 17-80,79-85 | ||
794 | 60-67,59-67 | ||
795 | 44-51,31-84 | ||
796 | 79-80,15-79 | ||
797 | 79-84,68-85 | ||
798 | 97-98,30-96 | ||
799 | 22-94,23-95 | ||
800 | 95-95,1-95 | ||
801 | 11-98,11-99 | ||
802 | 49-92,82-91 | ||
803 | 43-52,44-51 | ||
804 | 76-86,51-81 | ||
805 | 23-68,32-69 | ||
806 | 22-40,22-23 | ||
807 | 65-94,81-94 | ||
808 | 36-89,88-90 | ||
809 | 7-96,4-97 | ||
810 | 6-6,9-19 | ||
811 | 82-85,33-85 | ||
812 | 65-67,66-93 | ||
813 | 94-95,67-89 | ||
814 | 85-85,77-84 | ||
815 | 60-89,83-90 | ||
816 | 6-21,2-75 | ||
817 | 20-91,16-19 | ||
818 | 95-97,51-94 | ||
819 | 21-82,8-8 | ||
820 | 16-19,20-83 | ||
821 | 96-97,8-81 | ||
822 | 34-90,5-94 | ||
823 | 94-95,70-94 | ||
824 | 27-80,27-81 | ||
825 | 12-83,13-13 | ||
826 | 91-94,8-92 | ||
827 | 6-80,5-79 | ||
828 | 12-21,12-20 | ||
829 | 29-64,28-63 | ||
830 | 32-72,23-71 | ||
831 | 54-56,54-57 | ||
832 | 68-69,11-68 | ||
833 | 5-99,4-95 | ||
834 | 34-55,35-56 | ||
835 | 42-71,42-72 | ||
836 | 21-94,93-96 | ||
837 | 8-8,8-96 | ||
838 | 26-99,25-97 | ||
839 | 30-75,2-29 | ||
840 | 27-58,28-52 | ||
841 | 29-75,28-76 | ||
842 | 3-77,3-78 | ||
843 | 11-35,11-36 | ||
844 | 26-43,38-41 | ||
845 | 51-56,33-57 | ||
846 | 19-21,20-98 | ||
847 | 48-93,47-48 | ||
848 | 2-81,31-75 | ||
849 | 17-75,16-16 | ||
850 | 57-82,48-48 | ||
851 | 24-74,25-65 | ||
852 | 20-20,21-21 | ||
853 | 78-96,77-79 | ||
854 | 4-97,4-98 | ||
855 | 4-30,19-31 | ||
856 | 11-97,10-89 | ||
857 | 21-64,1-64 | ||
858 | 31-99,16-98 | ||
859 | 38-47,40-40 | ||
860 | 27-95,12-17 | ||
861 | 51-93,51-92 | ||
862 | 90-91,6-91 | ||
863 | 26-27,16-26 | ||
864 | 3-78,1-1 | ||
865 | 51-51,52-92 | ||
866 | 38-42,32-36 | ||
867 | 36-46,10-67 | ||
868 | 7-70,6-71 | ||
869 | 52-81,51-81 | ||
870 | 74-74,75-84 | ||
871 | 28-64,29-29 | ||
872 | 15-47,15-16 | ||
873 | 4-94,95-95 | ||
874 | 15-65,15-97 | ||
875 | 98-98,1-99 | ||
876 | 41-97,42-98 | ||
877 | 84-94,90-95 | ||
878 | 15-82,83-83 | ||
879 | 3-10,10-73 | ||
880 | 90-97,5-96 | ||
881 | 29-81,29-45 | ||
882 | 64-93,5-99 | ||
883 | 26-95,25-26 | ||
884 | 37-49,38-50 | ||
885 | 32-96,10-33 | ||
886 | 28-30,28-31 | ||
887 | 18-75,19-75 | ||
888 | 49-51,17-50 | ||
889 | 16-46,15-17 | ||
890 | 3-4,3-95 | ||
891 | 7-30,30-31 | ||
892 | 9-96,9-95 | ||
893 | 22-38,18-39 | ||
894 | 29-32,50-89 | ||
895 | 98-99,1-99 | ||
896 | 81-97,9-83 | ||
897 | 32-38,64-69 | ||
898 | 35-52,51-53 | ||
899 | 17-96,17-98 | ||
900 | 14-97,98-98 | ||
901 | 10-66,11-65 | ||
902 | 4-91,4-91 | ||
903 | 52-76,73-74 | ||
904 | 17-17,16-17 | ||
905 | 6-73,7-74 | ||
906 | 9-90,9-89 | ||
907 | 42-74,42-84 | ||
908 | 68-77,69-77 | ||
909 | 42-79,40-51 | ||
910 | 15-89,15-90 | ||
911 | 4-86,3-3 | ||
912 | 43-46,40-46 | ||
913 | 3-97,2-98 | ||
914 | 13-26,12-97 | ||
915 | 91-93,15-92 | ||
916 | 4-89,4-99 | ||
917 | 41-66,14-40 | ||
918 | 30-71,31-71 | ||
919 | 57-61,38-60 | ||
920 | 36-99,35-98 | ||
921 | 36-91,20-36 | ||
922 | 80-81,16-80 | ||
923 | 1-99,4-96 | ||
924 | 24-80,25-80 | ||
925 | 1-98,2-99 | ||
926 | 17-43,17-44 | ||
927 | 4-99,2-2 | ||
928 | 11-46,11-45 | ||
929 | 70-92,69-86 | ||
930 | 15-15,3-14 | ||
931 | 5-80,7-81 | ||
932 | 33-91,52-60 | ||
933 | 62-68,4-62 | ||
934 | 23-33,22-33 | ||
935 | 21-71,7-72 | ||
936 | 41-63,40-62 | ||
937 | 19-20,20-26 | ||
938 | 9-87,8-86 | ||
939 | 90-90,91-96 | ||
940 | 31-32,50-68 | ||
941 | 21-35,31-85 | ||
942 | 14-98,15-15 | ||
943 | 95-96,46-95 | ||
944 | 9-64,10-21 | ||
945 | 92-98,30-66 | ||
946 | 66-86,79-95 | ||
947 | 1-71,34-71 | ||
948 | 31-92,91-93 | ||
949 | 21-25,8-17 | ||
950 | 17-49,1-69 | ||
951 | 3-88,2-98 | ||
952 | 54-86,53-55 | ||
953 | 29-79,95-96 | ||
954 | 4-25,3-25 | ||
955 | 2-44,3-61 | ||
956 | 34-85,33-35 | ||
957 | 8-10,8-11 | ||
958 | 95-97,45-98 | ||
959 | 63-92,62-93 | ||
960 | 61-79,60-80 | ||
961 | 36-85,20-36 | ||
962 | 45-71,10-53 | ||
963 | 56-85,52-84 | ||
964 | 40-86,41-86 | ||
965 | 6-83,4-78 | ||
966 | 18-53,19-54 | ||
967 | 69-73,69-72 | ||
968 | 3-76,75-75 | ||
969 | 28-88,19-60 | ||
970 | 3-85,10-85 | ||
971 | 36-69,35-69 | ||
972 | 58-82,57-82 | ||
973 | 16-98,15-99 | ||
974 | 71-84,84-85 | ||
975 | 7-68,42-67 | ||
976 | 3-69,70-70 | ||
977 | 2-10,7-11 | ||
978 | 59-91,27-91 | ||
979 | 4-99,5-94 | ||
980 | 71-84,30-70 | ||
981 | 28-28,12-27 | ||
982 | 52-88,14-26 | ||
983 | 91-91,42-90 | ||
984 | 6-56,5-42 | ||
985 | 15-37,17-53 | ||
986 | 10-86,86-87 | ||
987 | 11-91,4-92 | ||
988 | 46-46,19-45 | ||
989 | 37-92,37-96 | ||
990 | 58-60,35-59 | ||
991 | 6-33,5-33 | ||
992 | 34-34,13-34 | ||
993 | 3-62,1-1 | ||
994 | 33-64,49-61 | ||
995 | 37-45,36-52 | ||
996 | 13-96,8-82 | ||
997 | 3-99,2-3 | ||
998 | 41-66,27-67 | ||
999 | 85-87,20-86 | ||
1000 | 9-26,8-25 | ||
diff --git a/2022/day4/part1/Cargo.toml b/2022/day4/part1/Cargo.toml new file mode 100644 index 0000000..f14fe90 --- /dev/null +++ b/2022/day4/part1/Cargo.toml | |||
@@ -0,0 +1,9 @@ | |||
1 | [package] | ||
2 | name = "part1" | ||
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] | ||
9 | itertools = "0.10.5" | ||
diff --git a/2022/day4/part1/src/main.rs b/2022/day4/part1/src/main.rs new file mode 100644 index 0000000..a4b7e38 --- /dev/null +++ b/2022/day4/part1/src/main.rs | |||
@@ -0,0 +1,50 @@ | |||
1 | use itertools::Itertools; | ||
2 | |||
3 | #[derive(Debug)] | ||
4 | struct Elf { | ||
5 | start: usize, | ||
6 | end: usize, | ||
7 | } | ||
8 | |||
9 | #[derive(Debug)] | ||
10 | struct Pair(Elf, Elf); | ||
11 | |||
12 | impl Elf { | ||
13 | pub fn new(range: &str) -> Self { | ||
14 | if let Some((start, end)) = range.to_string().split("-").collect_tuple() { | ||
15 | let start: usize = start.parse().unwrap(); | ||
16 | let end: usize = end.parse().unwrap(); | ||
17 | Self { start, end } | ||
18 | } else { | ||
19 | panic!("Expected two elements"); | ||
20 | } | ||
21 | } | ||
22 | } | ||
23 | |||
24 | impl Pair { | ||
25 | pub fn new(line: &str) -> Self { | ||
26 | if let Some((first, second)) = line.to_string().split(",").collect_tuple() { | ||
27 | Pair(Elf::new(first), Elf::new(second)) | ||
28 | } else { | ||
29 | panic!("Expected two elements"); | ||
30 | } | ||
31 | } | ||
32 | } | ||
33 | |||
34 | impl Pair { | ||
35 | fn contains(&self) -> bool { | ||
36 | return (self.0.start <= self.1.start && self.0.end >= self.1.end) | ||
37 | || (self.0.start >= self.1.start && self.0.end <= self.1.end); | ||
38 | } | ||
39 | } | ||
40 | |||
41 | fn main() { | ||
42 | let sum: usize = include_str!("../../example") | ||
43 | .lines() | ||
44 | .map(|l| Pair::new(l)) | ||
45 | .map(|p| p.contains()) | ||
46 | .filter(|r| *r) | ||
47 | .count(); | ||
48 | |||
49 | println!("{}", sum); | ||
50 | } | ||
diff --git a/2022/day4/part2/Cargo.toml b/2022/day4/part2/Cargo.toml new file mode 100644 index 0000000..69fa504 --- /dev/null +++ b/2022/day4/part2/Cargo.toml | |||
@@ -0,0 +1,9 @@ | |||
1 | [package] | ||
2 | name = "part2" | ||
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] | ||
9 | itertools = "0.10.5" | ||
diff --git a/2022/day4/part2/src/main.rs b/2022/day4/part2/src/main.rs new file mode 100644 index 0000000..d7f378a --- /dev/null +++ b/2022/day4/part2/src/main.rs | |||
@@ -0,0 +1,49 @@ | |||
1 | use itertools::Itertools; | ||
2 | |||
3 | #[derive(Debug)] | ||
4 | struct Elf { | ||
5 | start: usize, | ||
6 | end: usize, | ||
7 | } | ||
8 | |||
9 | #[derive(Debug)] | ||
10 | struct Pair(Elf, Elf); | ||
11 | |||
12 | impl Elf { | ||
13 | pub fn new(range: &str) -> Self { | ||
14 | if let Some((start, end)) = range.to_string().split("-").collect_tuple() { | ||
15 | let start: usize = start.parse().unwrap(); | ||
16 | let end: usize = end.parse().unwrap(); | ||
17 | Self { start, end } | ||
18 | } else { | ||
19 | panic!("Expected two elements"); | ||
20 | } | ||
21 | } | ||
22 | } | ||
23 | |||
24 | impl Pair { | ||
25 | pub fn new(line: &str) -> Self { | ||
26 | if let Some((first, second)) = line.to_string().split(",").collect_tuple() { | ||
27 | Pair(Elf::new(first), Elf::new(second)) | ||
28 | } else { | ||
29 | panic!("Expected two elements"); | ||
30 | } | ||
31 | } | ||
32 | } | ||
33 | |||
34 | impl Pair { | ||
35 | fn overlaps(&self) -> bool { | ||
36 | !(self.0.end < self.1.start || self.1.end < self.0.start) | ||
37 | } | ||
38 | } | ||
39 | |||
40 | fn main() { | ||
41 | let sum: usize = include_str!("../../input") | ||
42 | .lines() | ||
43 | .map(|l| Pair::new(l)) | ||
44 | .map(|p| p.overlaps()) | ||
45 | .filter(|r| *r) | ||
46 | .count(); | ||
47 | |||
48 | println!("{}", sum); | ||
49 | } | ||