:)

day5 part1

+1232
+11
input/day5.test.txt
··· 1 + 3-5 2 + 10-14 3 + 16-20 4 + 12-18 5 + 6 + 1 7 + 5 8 + 8 9 + 11 10 + 17 11 + 32
+1177
input/day5.txt
··· 1 + 79225938624159-79772919561224 2 + 445994870830027-449475105431654 3 + 485052355932434-489723347156062 4 + 252033180861215-252511696149831 5 + 455027942886900-455027942886900 6 + 390923392404945-391369358684202 7 + 111589773767805-118743888275326 8 + 440390990825652-440663571836987 9 + 436713593570041-437153387734809 10 + 71552614839182-72248109759130 11 + 75562993535351-75777039646971 12 + 202271210408543-206274751599943 13 + 174836883092812-180073977980028 14 + 516752870130348-518587513963800 15 + 223078965120104-228545028738318 16 + 438996036819994-439417909158596 17 + 75562993535351-76365170391821 18 + 151193210118987-157105755166663 19 + 79772919561224-79981244100552 20 + 96759532330786-98579687302472 21 + 78755790555282-79225938624159 22 + 413395659982149-413395659982149 23 + 252961912959367-253636969000871 24 + 440145272934342-440390990825652 25 + 292632881149683-297095102370780 26 + 5439446452415-8476082394860 27 + 27740466262204-29785184292050 28 + 91308964822097-96759532330784 29 + 352924241057590-354499519431240 30 + 260138981910960-260557265444664 31 + 259961539016687-260138981910960 32 + 373590767911263-376365600546733 33 + 514274082785193-516010739140991 34 + 534016913115199-540445990696521 35 + 438477741007747-438625201619520 36 + 252705478080896-252961912959367 37 + 81529807435668-87525980647065 38 + 274903492707570-277690616085252 39 + 357524899188118-358875034429848 40 + 25055251756195-26704088596914 41 + 540445990696522-540445990696522 42 + 126641042611452-126641042611452 43 + 363389282691740-370081426037674 44 + 223078965120103-223078965120103 45 + 358643980680397-359836354030584 46 + 273251196412736-276300727112958 47 + 360304931887093-361532980687154 48 + 54611041342437-57224634168756 49 + 422927139058460-427888401588498 50 + 555942054595955-559018047524858 51 + 33541309838058-39074263190979 52 + 356622813179758-358182833915101 53 + 260138981910960-260802671527207 54 + 390247982188757-390632116757234 55 + 276570274308979-279441496270153 56 + 132373993125976-136350174377622 57 + 432689256585724-433045082549595 58 + 515282338380611-517291623214868 59 + 384960608828704-385471130381718 60 + 141288346154379-148667235181744 61 + 193715411452155-198037526958568 62 + 442730917008354-450277066519305 63 + 265694812858929-270838596219136 64 + 544453658310498-552004299202057 65 + 455027942886900-458367437363550 66 + 390923392404945-391369358684202 67 + 441128601849783-441662134512868 68 + 478420204129418-481158065753227 69 + 383977256209833-384405105282285 70 + 304641651395981-310600767741398 71 + 364944982731537-367415275977225 72 + 383037049573035-383977256209833 73 + 468311775561538-470995770448391 74 + 81529807435668-86141768578819 75 + 76580679130959-77183103581819 76 + 72468870174805-73349647866598 77 + 51945266971870-59698236253713 78 + 41269089149346-41269089149346 79 + 26388359454758-28538522238248 80 + 72468870174805-73027431091794 81 + 396168867879203-399887823491991 82 + 518130406480785-520094113970530 83 + 391248350131220-391369358684202 84 + 151193210118987-159938826124943 85 + 302239372542749-307326937043456 86 + 463373574942020-470995770448391 87 + 271693369738429-274140416172999 88 + 359294204057144-360833032432674 89 + 355737283619812-357058463446714 90 + 385809253734370-386672304725548 91 + 213727775852102-216828311641185 92 + 512913756301730-514946536337279 93 + 485052355932434-489723347156062 94 + 122301489626806-126641042611452 95 + 61073279838793-64601522636200 96 + 289478169879820-289478169879820 97 + 213727775852102-216828311641185 98 + 107738463920939-107738463920939 99 + 340684274251418-340684274251418 100 + 323696253958580-330911444533497 101 + 434238684817903-434751255465049 102 + 285893461204740-289478169879820 103 + 387603542541111-388094634062728 104 + 387315520638657-388094634062728 105 + 544453658310498-547225900584125 106 + 391248350131220-391369358684202 107 + 14138223877747-17205751061635 108 + 520401561838165-522180393786716 109 + 257292001338432-257999014714194 110 + 384405105282285-384646125590025 111 + 297095102370782-299108673243336 112 + 312625254613715-320977475810592 113 + 242995291745373-242995291745373 114 + 232596112211004-238889664996400 115 + 346289004667560-347859257126227 116 + 494319600739047-494319600739047 117 + 71730906496904-72468870174805 118 + 354937175875507-356255684938529 119 + 525917757855721-531722418711508 120 + 405444920918505-407642614822359 121 + 387888949860732-388363898955773 122 + 387888949860732-388094634062728 123 + 433045082549595-433458654165955 124 + 76365170391821-76850399707072 125 + 254985947817624-255772314079756 126 + 168508801060493-168508801060493 127 + 474930746035871-478420204129417 128 + 493548713557-8476082394860 129 + 559018047524858-559018047524858 130 + 393195998519347-396168867879202 131 + 335553280391128-340684274251417 132 + 187819512743212-187819512743212 133 + 102284928962805-107738463920938 134 + 242995291745373-250482497824749 135 + 254743374951296-254985947817624 136 + 388947549331737-389441820942312 137 + 373590767911263-381247681046110 138 + 386165402242963-386961990037722 139 + 173144135686138-174836883092811 140 + 184466486183684-187819512743212 141 + 524707566196329-529773882373859 142 + 346289004667559-346289004667559 143 + 413395659982149-420792440268852 144 + 262801163197626-268539565121377 145 + 134438472735028-140205385097386 146 + 21973678985786-24167340388309 147 + 504675185749547-508167792132876 148 + 440869627037067-441531656440380 149 + 165307828623093-168508801060492 150 + 143639757889802-147894475709541 151 + 78755790555282-79225938624159 152 + 14138223877747-14138223877747 153 + 278550141756410-280989120910301 154 + 257292001338432-257437010542830 155 + 382417022284888-383037049573035 156 + 405444920918505-407642614822359 157 + 20551130347159-22866841662034 158 + 257292001338432-257437010542830 159 + 352221290016534-353406793430300 160 + 111589773767805-118743888275326 161 + 353882376221457-355302743754497 162 + 494319600739048-500132235482877 163 + 206274751599945-208563447788717 164 + 326108650535098-330911444533497 165 + 64601522636201-69278000520467 166 + 236896652986937-238889664996400 167 + 76580679130959-76850399707072 168 + 23559981379484-25727624448171 169 + 75100216224333-75562993535351 170 + 519175296031505-521134018156447 171 + 256802625238664-257437010542830 172 + 382535746223231-383340526298139 173 + 41269089149347-49642182021355 174 + 258513476853811-259076564266146 175 + 257999014714194-258274397103704 176 + 508167792132878-510252049970299 177 + 178 + 483969530684122 179 + 134846534475894 180 + 324241214092481 181 + 244191528770542 182 + 124507758892152 183 + 76559339277532 184 + 95889243666336 185 + 21515935777259 186 + 115339323569542 187 + 136232130615684 188 + 329432916979868 189 + 5882445771325 190 + 336843450910115 191 + 158467907477388 192 + 114288813866782 193 + 548081571014923 194 + 507536881101751 195 + 1602547114782 196 + 516167633022656 197 + 73380041737416 198 + 465576446609197 199 + 83729040194730 200 + 517345919605281 201 + 481252268208569 202 + 257056373429367 203 + 546221674813606 204 + 314211116404803 205 + 156484152709521 206 + 396534320538981 207 + 65936008767184 208 + 181825537789519 209 + 247003020408113 210 + 14307569526559 211 + 144679215340716 212 + 7185677396816 213 + 346524951878936 214 + 325667639903010 215 + 324322053137166 216 + 517673821103256 217 + 133609351014751 218 + 66708187938845 219 + 328321984017255 220 + 486520593554539 221 + 268454562872729 222 + 224637156497537 223 + 543313587272160 224 + 520444060582587 225 + 28220506758897 226 + 82738052957338 227 + 308032121842232 228 + 15356831834955 229 + 302415925831627 230 + 226195511828473 231 + 306934185519545 232 + 480053939971926 233 + 538667059312545 234 + 279807421453471 235 + 79598805325091 236 + 298149776136875 237 + 201877559973578 238 + 518688484310407 239 + 318197816882328 240 + 132766842422650 241 + 10383965698474 242 + 27692924727841 243 + 434702504527118 244 + 363517500960245 245 + 106759358439183 246 + 67357015927787 247 + 357398168124745 248 + 27430020565684 249 + 256891762362185 250 + 545734346470704 251 + 508958161584669 252 + 256831470930042 253 + 543671596644688 254 + 226613215914570 255 + 365267169247370 256 + 143877297437837 257 + 353812949280019 258 + 3895005289018 259 + 405570199567921 260 + 544846817875010 261 + 418425393794310 262 + 430665837011380 263 + 102458724396620 264 + 43770768000130 265 + 136021892171152 266 + 240246396459502 267 + 477037985217113 268 + 337328652973869 269 + 481111160730227 270 + 310508861676325 271 + 144509323649075 272 + 333387580033028 273 + 143250601022636 274 + 158267518145967 275 + 34661237980711 276 + 38528616677126 277 + 526565972596028 278 + 556222340139707 279 + 278969115145675 280 + 356137941858067 281 + 145195723550206 282 + 513789970058092 283 + 242434218583591 284 + 438486706664102 285 + 548770245718373 286 + 351862434936439 287 + 495297857488712 288 + 547148560152571 289 + 34335024180235 290 + 416658757520092 291 + 368467766147937 292 + 399302689052999 293 + 67518331255299 294 + 4019202025172 295 + 488567676198819 296 + 103976144643538 297 + 556071358821241 298 + 23891411421466 299 + 525322930499935 300 + 247770669638303 301 + 151874628354158 302 + 548665529786170 303 + 116375577844876 304 + 136506810380300 305 + 154757447209221 306 + 334776788778855 307 + 159329832250887 308 + 535141293776549 309 + 275249592876833 310 + 549744286732272 311 + 72898113565889 312 + 197216955312947 313 + 226846021437832 314 + 449416848195229 315 + 237611491103432 316 + 103346247930976 317 + 207807126371939 318 + 528657142787418 319 + 571046711271 320 + 557792911303366 321 + 22619627827029 322 + 150621659175039 323 + 443527396465402 324 + 396480056105212 325 + 118045733488481 326 + 389267424505955 327 + 133901905495640 328 + 438551255592745 329 + 56979133405054 330 + 365272492121712 331 + 427881125009411 332 + 177958517895805 333 + 425157811786198 334 + 480954817604208 335 + 539474363220502 336 + 266547301861654 337 + 488039159707406 338 + 358233743693465 339 + 447639701430752 340 + 185639217706592 341 + 167208175884348 342 + 295175513814538 343 + 497240350759325 344 + 246496187825975 345 + 414047970388713 346 + 25185980756065 347 + 246245778519546 348 + 362929601505053 349 + 151235059844638 350 + 520446031578988 351 + 206030080072493 352 + 151564953821399 353 + 525194029618293 354 + 369450524407589 355 + 129396639012330 356 + 275876665656323 357 + 114117225945974 358 + 385415130088548 359 + 505848426150917 360 + 257765422989778 361 + 498798399431828 362 + 59007860582157 363 + 514260784362563 364 + 468915172619545 365 + 67352121900278 366 + 146273824965592 367 + 424779019280213 368 + 323437587742519 369 + 359454428505682 370 + 83812736465162 371 + 339898202729449 372 + 396013522613740 373 + 546037612798746 374 + 536125986298003 375 + 260361153705695 376 + 240230844960021 377 + 84085502858281 378 + 324789179995334 379 + 326754761514412 380 + 223805530549562 381 + 237146847097019 382 + 186594584475058 383 + 313499394372084 384 + 104302567699651 385 + 167489349794991 386 + 258778069863877 387 + 537227513237627 388 + 95213251031246 389 + 336850977369205 390 + 367215012533810 391 + 157013339681386 392 + 475978347736936 393 + 515946032452248 394 + 545012685230167 395 + 195391491161932 396 + 111342533200762 397 + 143749738584752 398 + 513933638407437 399 + 194899521506944 400 + 36382828455799 401 + 274164993468959 402 + 25089318248308 403 + 54443439212871 404 + 340627699698822 405 + 436497741711384 406 + 184966775193719 407 + 386249200343299 408 + 314349429888231 409 + 214888534550077 410 + 379486467343968 411 + 304963080280306 412 + 21329885844734 413 + 394317827059725 414 + 175903028197701 415 + 476463668595003 416 + 64439112654339 417 + 538171366580848 418 + 42622556568583 419 + 529849201933390 420 + 7775396955587 421 + 8360611567244 422 + 242424473516216 423 + 425104302837993 424 + 299570849710439 425 + 126169813691055 426 + 495185603833603 427 + 456278296220610 428 + 191425394465359 429 + 335997368993074 430 + 313287347143828 431 + 309426133169257 432 + 293130784582998 433 + 335374734770434 434 + 159691925958258 435 + 105993031055946 436 + 376499006296856 437 + 326160393279645 438 + 147441679682264 439 + 358456733306497 440 + 395171835147976 441 + 178084112197800 442 + 466513737300590 443 + 494955078214002 444 + 93766390139486 445 + 1080197280642 446 + 355314625180389 447 + 315093848180940 448 + 112702927852697 449 + 304245332831853 450 + 149515693035145 451 + 98077866816222 452 + 111721679896057 453 + 547382985558826 454 + 440924245206304 455 + 293137401658731 456 + 189858382518659 457 + 488004767827421 458 + 535743369213340 459 + 280863562187874 460 + 126265304714963 461 + 373772282963500 462 + 527111047168547 463 + 412522950543664 464 + 354172374525121 465 + 177940093269646 466 + 133198374927723 467 + 328208325811140 468 + 374511079752324 469 + 92433780081109 470 + 414626765124316 471 + 397241228479117 472 + 364001889255381 473 + 369906960506762 474 + 151783270135262 475 + 170750705400047 476 + 3203783355516 477 + 158012912534588 478 + 416976871562171 479 + 4375381809965 480 + 116808296245294 481 + 417314373280181 482 + 469135069732508 483 + 97420297479845 484 + 87821757432808 485 + 54394446570241 486 + 14623955913456 487 + 294216593461051 488 + 43084297541170 489 + 340494021386216 490 + 360588896701388 491 + 476827831980242 492 + 248983311793489 493 + 83921113556254 494 + 443265846718327 495 + 514348114434800 496 + 177776687783072 497 + 340232592358339 498 + 397775490984331 499 + 176982657631436 500 + 2733443000125 501 + 297577675780162 502 + 90593131734446 503 + 352970615366460 504 + 3426743899713 505 + 246173353803347 506 + 535107215913105 507 + 14594737273579 508 + 509030668086068 509 + 535674637243800 510 + 17104806707765 511 + 29532371959813 512 + 238808089134047 513 + 367356288981416 514 + 441478593138103 515 + 386626545665479 516 + 341094938124573 517 + 221129801778293 518 + 110052627335468 519 + 536649396631708 520 + 323283290339183 521 + 266465372536579 522 + 82998221779092 523 + 216708935607847 524 + 422947638470867 525 + 407579772457429 526 + 224245164590380 527 + 482678131169935 528 + 272699398813841 529 + 315013422698507 530 + 538069879966894 531 + 23255789303377 532 + 35390960147875 533 + 526288282828081 534 + 415889570761231 535 + 363841768689801 536 + 85555025900010 537 + 214839496947132 538 + 549124463824506 539 + 26924461050179 540 + 26582591241389 541 + 58082323590728 542 + 329378453914543 543 + 256868555299605 544 + 50918159437233 545 + 139804573757363 546 + 278458399612091 547 + 196410616977478 548 + 53188414675342 549 + 463886065368488 550 + 220620334490470 551 + 249553863404648 552 + 206583880765639 553 + 469002983902364 554 + 7379487008746 555 + 464634893742380 556 + 253572459850670 557 + 461511935193437 558 + 84258211528148 559 + 167751513053625 560 + 457960992667463 561 + 12574694083039 562 + 145409778556459 563 + 206262962655021 564 + 415045536520316 565 + 530893419182750 566 + 180155884750788 567 + 396553104179047 568 + 307483045096659 569 + 352225251943782 570 + 458604371553255 571 + 124371684266065 572 + 275495716883970 573 + 489021534538219 574 + 325717068998637 575 + 474923884788634 576 + 46321416194636 577 + 53809553308128 578 + 47184072223373 579 + 495365918563982 580 + 436281074939529 581 + 240423624822152 582 + 91919719916407 583 + 401078151082372 584 + 243362623300803 585 + 421657265732157 586 + 545001600865263 587 + 286830642156279 588 + 153099100772483 589 + 384200969357261 590 + 138384683842929 591 + 359641480171831 592 + 225994477181592 593 + 447188146176533 594 + 158354958876421 595 + 93418787219463 596 + 42947419002715 597 + 464980440538753 598 + 475594901964866 599 + 25430955456092 600 + 232900766730810 601 + 382581793156882 602 + 545599446196832 603 + 265142258611661 604 + 79761264248491 605 + 126118275186647 606 + 159456150259477 607 + 418508935712086 608 + 456354788873768 609 + 497128904608321 610 + 178292911603523 611 + 519029955037144 612 + 142043551573774 613 + 159056650960309 614 + 245084489809551 615 + 220199819550244 616 + 519799765997056 617 + 285990193328644 618 + 280622260724175 619 + 145471372109725 620 + 309261579166411 621 + 312319846923610 622 + 136072246468211 623 + 479279506457864 624 + 297128739224106 625 + 71372586536807 626 + 48011116877175 627 + 328597217715680 628 + 385376644541741 629 + 357685506654878 630 + 487586361809575 631 + 368969777978102 632 + 477909389273307 633 + 315515834973742 634 + 456756398388003 635 + 375096701985914 636 + 366439721541026 637 + 290797636198973 638 + 63660287522212 639 + 398070823658333 640 + 105584823718003 641 + 378088085133197 642 + 303474129109902 643 + 167375016090640 644 + 320902207576787 645 + 331540640286751 646 + 427959766484667 647 + 232698211623291 648 + 478414083644492 649 + 509827518467712 650 + 22255576479438 651 + 533866263465246 652 + 338944642558679 653 + 270189665649331 654 + 304636764277785 655 + 557062113390034 656 + 355477690098162 657 + 116606327683107 658 + 383739232595420 659 + 365664655663358 660 + 223230776378807 661 + 516135284490470 662 + 193983329308152 663 + 97165054235884 664 + 427768969621038 665 + 551718461205201 666 + 28790463939255 667 + 86969971124985 668 + 357247894303719 669 + 359269239212447 670 + 174279963249525 671 + 398185512576093 672 + 206982870959748 673 + 365944304489498 674 + 237272730798646 675 + 93668212156714 676 + 25440033906280 677 + 233197818950138 678 + 519269479057762 679 + 536457403326364 680 + 159295728403582 681 + 527928520346885 682 + 500599597624136 683 + 534976659497530 684 + 535434475833834 685 + 518303776798118 686 + 420096694579271 687 + 377501288662965 688 + 226939870337501 689 + 143685000975837 690 + 76375182090976 691 + 216368432550608 692 + 424394214853791 693 + 295948407320120 694 + 16221340626338 695 + 187776596495230 696 + 466541914876486 697 + 329653620056845 698 + 30387147959890 699 + 67651950361939 700 + 37463715196794 701 + 228242450944275 702 + 76694574911018 703 + 399043433709413 704 + 470958935752568 705 + 64481203215852 706 + 49069477958994 707 + 68514114637592 708 + 214875324329857 709 + 144508446789223 710 + 338275991324538 711 + 126323906828278 712 + 475051872802319 713 + 270460968315427 714 + 277920909920086 715 + 526881090454794 716 + 174011088218004 717 + 256806491463980 718 + 228066384672592 719 + 509832363134096 720 + 155915081868821 721 + 365293196957383 722 + 29465737982747 723 + 557735053236687 724 + 325839150228369 725 + 355297506016722 726 + 28627978865000 727 + 143982382537643 728 + 68479417040280 729 + 349340553274233 730 + 202609370376508 731 + 165502976930441 732 + 447039508891605 733 + 369893323992844 734 + 73430406866069 735 + 15778143381225 736 + 207184834220621 737 + 44355827308303 738 + 288680228659485 739 + 475648547887691 740 + 124784434736168 741 + 442993042622609 742 + 133203202972607 743 + 275928178759562 744 + 499138650924781 745 + 361122612863812 746 + 233506518953662 747 + 499753131604069 748 + 315324011290606 749 + 304094643266622 750 + 6961197064426 751 + 212207043154793 752 + 247265937679279 753 + 233021808277191 754 + 296246260347904 755 + 309617960852566 756 + 317725018211381 757 + 531244085841561 758 + 102431250456517 759 + 62115787464395 760 + 303617114236759 761 + 226497559746785 762 + 54373523557075 763 + 61599625521976 764 + 519468631785677 765 + 194637241721010 766 + 82494298072170 767 + 262937564549098 768 + 527181874205634 769 + 91533451338961 770 + 42623497699099 771 + 538874146809441 772 + 258151733414885 773 + 173623471580665 774 + 314875968789773 775 + 329389255853388 776 + 169607935572146 777 + 72620593184564 778 + 46592282515546 779 + 97782641229772 780 + 456081986721724 781 + 82147525786787 782 + 30263438561683 783 + 234287026278595 784 + 296619564481696 785 + 301516401568005 786 + 359054688744269 787 + 250628628599165 788 + 517113758820394 789 + 4856598037938 790 + 178650792424154 791 + 248562722288312 792 + 233033860256464 793 + 538772022247131 794 + 164326342553328 795 + 550343854949668 796 + 360157023823769 797 + 1803697288940 798 + 4139409521558 799 + 375957815341508 800 + 112920260929310 801 + 66574822935204 802 + 62898818949285 803 + 448126232201644 804 + 203267906044629 805 + 25127561812240 806 + 306993490621537 807 + 272368490968221 808 + 58583345045064 809 + 307570420230823 810 + 521005005682681 811 + 496569164006746 812 + 167364294803209 813 + 336740234064117 814 + 250011710044489 815 + 173927649656064 816 + 21214849223624 817 + 155047693029383 818 + 365788530276941 819 + 84686742981610 820 + 41562968837517 821 + 519123245958210 822 + 545223282310866 823 + 551856147116860 824 + 3568177873238 825 + 45182314995864 826 + 374653755646870 827 + 476984514643406 828 + 147363072687684 829 + 270835004458000 830 + 137070781794557 831 + 36487493917820 832 + 327528227553610 833 + 375423885360975 834 + 178335107103962 835 + 297728378740167 836 + 461490959767418 837 + 427972256361067 838 + 263288523571949 839 + 530666369819114 840 + 432864042407375 841 + 61347505177274 842 + 387833629014600 843 + 504447835968609 844 + 232813626954897 845 + 139068577742792 846 + 161071422228044 847 + 255696586938936 848 + 312722202046362 849 + 447426429365272 850 + 266572142476009 851 + 178145856260192 852 + 534783027696494 853 + 300960362793241 854 + 22253337875323 855 + 417551837111114 856 + 270207762003517 857 + 148438872224233 858 + 25207797237573 859 + 190904768850025 860 + 416570736588329 861 + 356239611309637 862 + 426908122628713 863 + 535131885265108 864 + 92135671719027 865 + 492493744957275 866 + 34107221758520 867 + 293097299371182 868 + 286722048885489 869 + 531575603231473 870 + 394491833524300 871 + 28958657533731 872 + 66262825220072 873 + 477908722836949 874 + 515907423451483 875 + 258682556346661 876 + 58494159751536 877 + 102618941361985 878 + 496296646204996 879 + 235699735991917 880 + 252999061367931 881 + 475544327112825 882 + 398627388336384 883 + 373369483778631 884 + 443942272979090 885 + 431700345117554 886 + 98551855057802 887 + 258141509527950 888 + 468131639524608 889 + 305667739994422 890 + 529074007708754 891 + 5433996995892 892 + 447374280579752 893 + 143328427212474 894 + 442854184981197 895 + 486373507111640 896 + 158026508768433 897 + 559035600712671 898 + 245658488421511 899 + 426505106474728 900 + 517210578599628 901 + 536886399834561 902 + 133181695754500 903 + 243190055516782 904 + 44100169820085 905 + 533069340236116 906 + 2576773387598 907 + 63370702051588 908 + 270619157139047 909 + 22719156110334 910 + 458300796661398 911 + 385260477534677 912 + 358219875887338 913 + 528291234443303 914 + 386055801873205 915 + 330590383129805 916 + 400005565541506 917 + 339652661530822 918 + 363753546955840 919 + 53798497709306 920 + 395745899333004 921 + 12813660463889 922 + 510591307996218 923 + 259051402893133 924 + 303842965198320 925 + 287875290471184 926 + 424425993339438 927 + 231617859374942 928 + 431449045794595 929 + 196946850882279 930 + 287843491644802 931 + 103130790266803 932 + 339703691692853 933 + 147997735422418 934 + 36198175922710 935 + 42724706286849 936 + 455877804610941 937 + 387797824521651 938 + 35284838211976 939 + 191105626749885 940 + 475813775620685 941 + 440511928132454 942 + 75413717308806 943 + 309551380325368 944 + 455129251094598 945 + 297964234612142 946 + 20492108721380 947 + 489080875566939 948 + 288254690290919 949 + 468002631409921 950 + 195797228556832 951 + 206530076968890 952 + 47843574414090 953 + 443276965363127 954 + 145754631399248 955 + 325655657717619 956 + 488477480425089 957 + 181614917906990 958 + 541300136757641 959 + 525917708491053 960 + 76459113368445 961 + 359765415500375 962 + 253200263468554 963 + 88669408642710 964 + 268110002618670 965 + 142463427282261 966 + 339007609195248 967 + 507245708094480 968 + 168364347650724 969 + 137935808178751 970 + 220640201417000 971 + 42640615459431 972 + 223926652079500 973 + 386650371662663 974 + 306084521822111 975 + 340148163129977 976 + 19447311152225 977 + 552343600374216 978 + 282199244856959 979 + 278700266920807 980 + 207578071158674 981 + 297628462534685 982 + 78959904939554 983 + 114965972740789 984 + 48904590471980 985 + 443335822541211 986 + 5377873323069 987 + 293657692555235 988 + 532721868023316 989 + 91634961308807 990 + 66309579935597 991 + 438582296375425 992 + 367750739172580 993 + 26059007562133 994 + 215316331023675 995 + 418753200645063 996 + 168191204771992 997 + 28271143822400 998 + 82723847893415 999 + 276609955236719 1000 + 5587367237445 1001 + 154748948746590 1002 + 343141077636919 1003 + 397253043203883 1004 + 269528085361621 1005 + 52569273267808 1006 + 1784630483602 1007 + 293332457764520 1008 + 465418830566226 1009 + 259923898296162 1010 + 468672750102118 1011 + 357364978201254 1012 + 136239537376212 1013 + 247576661337941 1014 + 486214617219118 1015 + 418944700198067 1016 + 389891232178666 1017 + 342426509401799 1018 + 265216471462061 1019 + 266946229916545 1020 + 390608819071508 1021 + 62683991552230 1022 + 208916523959165 1023 + 505124538859266 1024 + 197917389164686 1025 + 487197683372118 1026 + 275602622506350 1027 + 220212174568700 1028 + 287443110496364 1029 + 558378567416262 1030 + 226632988376411 1031 + 349284786332935 1032 + 406819983670704 1033 + 53817894562288 1034 + 139734150641470 1035 + 249526911232027 1036 + 145251006386217 1037 + 298228464319415 1038 + 76094038531447 1039 + 425083134330348 1040 + 374671243197967 1041 + 339112774679116 1042 + 304269942984181 1043 + 25994674453798 1044 + 167422347771715 1045 + 226275392254662 1046 + 465295279298423 1047 + 527846820982375 1048 + 557120761855068 1049 + 34691562941791 1050 + 365111833033794 1051 + 125184267874194 1052 + 156110285307803 1053 + 336944528404015 1054 + 327742760892993 1055 + 88142033831001 1056 + 122726957627630 1057 + 513410116454761 1058 + 411225386138675 1059 + 366754155214827 1060 + 400741371915853 1061 + 124339308548672 1062 + 398830059755914 1063 + 446611647956056 1064 + 338407133618954 1065 + 152717268595681 1066 + 114033705676349 1067 + 484542319558590 1068 + 393599666135150 1069 + 325468442200967 1070 + 166830597794835 1071 + 34062764171727 1072 + 112108488945249 1073 + 528523426224331 1074 + 224895569924662 1075 + 104410209131265 1076 + 346944333780107 1077 + 363858652470379 1078 + 506390192023755 1079 + 284063541095909 1080 + 480751804297958 1081 + 486358452093241 1082 + 424835072082171 1083 + 394857401601715 1084 + 274343917793566 1085 + 204608719741911 1086 + 470268886767181 1087 + 426972117505196 1088 + 357863271957764 1089 + 459186007641777 1090 + 396953698596250 1091 + 303964347368417 1092 + 497391235757859 1093 + 122958287901744 1094 + 528298007517825 1095 + 347319331039656 1096 + 56066570014582 1097 + 98346007673017 1098 + 476026266639962 1099 + 53588795383005 1100 + 118362083518747 1101 + 451125898238499 1102 + 497973357911290 1103 + 382627941481925 1104 + 61539671918503 1105 + 169332923613112 1106 + 407081695788058 1107 + 134146412827669 1108 + 366236842724572 1109 + 124301076903027 1110 + 354509799599427 1111 + 470730081291361 1112 + 315038813081682 1113 + 423126374041206 1114 + 562175975577227 1115 + 546155844299630 1116 + 172055115567500 1117 + 467979935802692 1118 + 477095960948691 1119 + 320287734547898 1120 + 517671686924416 1121 + 215330270196792 1122 + 44304803858588 1123 + 33874435811839 1124 + 33690166308501 1125 + 383547970564262 1126 + 361521559923460 1127 + 92212930860085 1128 + 419471330119113 1129 + 35091716240627 1130 + 325858018783643 1131 + 81962418291618 1132 + 250041659630052 1133 + 463593418093934 1134 + 396155055123252 1135 + 127406747768655 1136 + 129659273126033 1137 + 398857688725737 1138 + 304851311839439 1139 + 367230248335456 1140 + 215843172575172 1141 + 352773351151603 1142 + 365069262484863 1143 + 473050623221751 1144 + 307307192959242 1145 + 209803248493122 1146 + 273049794669286 1147 + 270633498407017 1148 + 125099654673982 1149 + 381163394756070 1150 + 275304476575387 1151 + 38410041523486 1152 + 250142010333023 1153 + 491399700800928 1154 + 513717466865705 1155 + 260343947860848 1156 + 309306888683545 1157 + 120042618766165 1158 + 21273028786202 1159 + 85653917497380 1160 + 68485675893536 1161 + 99279027972090 1162 + 126309282944030 1163 + 276940839813092 1164 + 56598869823346 1165 + 203457946950197 1166 + 173569818635104 1167 + 145189501665650 1168 + 207307193083270 1169 + 450888195298269 1170 + 538474123462493 1171 + 238002580549273 1172 + 537082966312831 1173 + 272423510362651 1174 + 153610318586730 1175 + 417989861029380 1176 + 286374187059498 1177 + 358433743942710
+28
src/day5.rs
··· 1 + use std::ops::RangeInclusive; 2 + 3 + pub fn day5_part1(input: &str) -> String { 4 + let (ranges, ingredients) = parse(input); 5 + ingredients 6 + .into_iter() 7 + .filter(|ingredient| ranges.iter().any(|range| range.contains(ingredient))) 8 + .count() 9 + .to_string() 10 + } 11 + 12 + pub fn day5_part2(input: &str) -> String { 13 + todo!() 14 + } 15 + 16 + fn parse(input: &str) -> (Vec<RangeInclusive<i64>>, Vec<i64>) { 17 + let (ranges, ingredients) = input.split_once("\n\n").unwrap(); 18 + let ranges = ranges 19 + .lines() 20 + .map(|line| line.split_once('-').unwrap()) 21 + .map(|(l, r)| l.parse().unwrap()..=r.parse().unwrap()) 22 + .collect(); 23 + let ingredients = ingredients 24 + .lines() 25 + .map(|line| line.parse().unwrap()) 26 + .collect(); 27 + (ranges, ingredients) 28 + }
+16
src/lib.rs
··· 117 117 118 118 pub mod day3; 119 119 pub mod day4; 120 + pub mod day5; 120 121 mod spatial; 121 122 122 123 #[cfg(test)] 123 124 mod tests { 124 125 use super::*; 126 + 127 + #[test] 128 + fn day5_part1_test() { 129 + let test_result = day5::day5_part1(include_str!("../input/day5.test.txt")); 130 + assert_eq!(test_result, "3"); 131 + let result = day5::day5_part1(include_str!("../input/day5.txt")); 132 + assert_eq!(result, "885"); 133 + } 134 + // #[test] 135 + // fn day5_part2_test() { 136 + // let test_result = day5::day5_part2(include_str!("../input/day5.test.txt")); 137 + // assert_eq!(test_result, "43"); 138 + // // let result = day5::day5_part2(include_str!("../input/day5.txt")); 139 + // // assert_eq!(result, "7922"); 140 + // } 125 141 126 142 #[test] 127 143 fn day4_part1_test() {