Advent of code 2025 (not proud)
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

day 5

+1367
+178
day_5/5.c
··· 1 + #include <stdio.h> 2 + #include <stdlib.h> 3 + #include <string.h> 4 + #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y)) 5 + #define MAX(X, Y) (((X) > (Y)) ? (X) : (Y)) 6 + typedef struct { 7 + long long min; 8 + long long max; 9 + } tuple; 10 + 11 + 12 + tuple* remove_element(tuple* arr,int i,int* len) { 13 + for (int j = i; j<*len; j++) { 14 + arr[j] = arr[j+1]; 15 + 16 + } 17 + arr = realloc(arr, (*len-1)*sizeof(tuple)); 18 + (*len)--; 19 + return arr; 20 + 21 + } 22 + 23 + 24 + 25 + int main(int argc, char* argv[]) { 26 + 27 + tuple* limits_arr = NULL; 28 + int limits_arr_len = 0; 29 + 30 + FILE* f = NULL; 31 + ssize_t nread = 0; 32 + size_t size = 0; 33 + char* line = NULL; 34 + long long start; 35 + long long end; 36 + long long ingridient; 37 + int fresh_ingridients = 0; 38 + int fresh = 0; 39 + unsigned long long total_fresh_num = 0; 40 + 41 + f = fopen(argv[1], "r"); 42 + 43 + while ((nread = getline(&line, &size, f)) > 1) { 44 + printf("%s",line); 45 + 46 + // add to the list of min and max values in typle format 47 + // 48 + start = atoll(strsep(&line, "-")); 49 + end = atoll(strsep(&line, "-")); 50 + int add_new_entry = 1; 51 + 52 + //check overlaps ~ish~ if new range is bridging two other ranges it still results in overlaps. 53 + //however reduces the original amount of ranges. 54 + if (limits_arr_len>0) { 55 + for (int i = 0; i<limits_arr_len; i++) { 56 + if (start<=limits_arr[i].max && start >= limits_arr[i].min) { 57 + //[a,start,b],end 58 + // if 59 + if (end >= limits_arr[i].max) { 60 + limits_arr[i].max = end; 61 + add_new_entry = 0; 62 + break; 63 + } else { 64 + add_new_entry = 0; 65 + break; 66 + } 67 + 68 + } else if (start < limits_arr[i].min) { 69 + if (end > limits_arr[i].max) { 70 + limits_arr[i].max = end; 71 + limits_arr[i].min = start; 72 + add_new_entry = 0; 73 + break; 74 + } else if (end<=limits_arr[i].max && end >= limits_arr[i].min) { 75 + limits_arr[i].min = start; 76 + add_new_entry = 0; 77 + break; 78 + } 79 + } 80 + } 81 + } 82 + if (add_new_entry) { 83 + limits_arr_len++; 84 + limits_arr = realloc(limits_arr, limits_arr_len*sizeof(tuple)); 85 + 86 + limits_arr[limits_arr_len-1].min = start; 87 + limits_arr[limits_arr_len-1].max = end; 88 + } 89 + } 90 + 91 + 92 + // behold, as i am about to write the worst overlap search algorithm known to humankind. 93 + int large_repeat = 0; 94 + 95 + do { 96 + 97 + large_repeat = 0; 98 + // as long as we do mergets, we run the whole thing again. 99 + 100 + for (int i = 0; i<limits_arr_len; i++) { // limit_arr_len will be changing as this goes i have no idea if this is optimal 101 + start = limits_arr[i].min; 102 + end = limits_arr[i].max; 103 + int repeat = 0; // if a merge happened, we will set repeat to true, and so will run the cycle again to check for new overlaps 104 + do { 105 + repeat = 0; 106 + for (int j = i+1; j<limits_arr_len; j++) { 107 + //this is horrible 108 + // we go over every entry in limit_arr. 109 + // if another entry has one of the ends inside, we set the other end equal to the appropriate value, whichever gives the largest range. 110 + // then delete it. 111 + if (limits_arr[j].min >= start && limits_arr[j].min <= end) { 112 + limits_arr[i].max = MAX(end, limits_arr[j].max); 113 + limits_arr = remove_element(limits_arr, j, &limits_arr_len); 114 + repeat = 1; 115 + large_repeat = 1; 116 + j--; 117 + } 118 + else if (limits_arr[j].max >= start && limits_arr[j].max <= end) { 119 + limits_arr[i].min = MIN(start, limits_arr[j].min); 120 + limits_arr = remove_element(limits_arr, j, &limits_arr_len); 121 + repeat = 1; 122 + large_repeat = 1; 123 + j--; 124 + } 125 + else if (limits_arr[j].min <= start && limits_arr[j].max >= end) { 126 + limits_arr[i] = limits_arr[j]; 127 + limits_arr = remove_element(limits_arr, j, &limits_arr_len); 128 + repeat = 1; 129 + large_repeat = 1; 130 + j--; 131 + } 132 + } 133 + }while (repeat); 134 + } 135 + 136 + 137 + }while(large_repeat); 138 + 139 + 140 + 141 + 142 + 143 + 144 + for (int i = 0; i<limits_arr_len; i++) { 145 + total_fresh_num += limits_arr[i].max - limits_arr[i].min +1; 146 + printf("min %lld, max %lld, num: %lld\n",limits_arr[i].min,limits_arr[i].max,(limits_arr[i].max - limits_arr[i].min +1)); 147 + } 148 + 149 + //not we go through ingridients 150 + 151 + while ((nread = getline(&line, &size, f)) != -1) { 152 + printf("%s",line); 153 + fresh = 0; 154 + ingridient = atoll(line); 155 + for (int i = 0; i<limits_arr_len; i++) { 156 + if (ingridient >= limits_arr[i].min && ingridient <= limits_arr[i].max) { 157 + fresh= 1; 158 + fresh_ingridients++; 159 + // printf("ingridient %lld is fresh in range %lld-%lld\n", ingridient,limits_arr[i].min,limits_arr[i].max); 160 + break; 161 + } 162 + } 163 + 164 + } 165 + 166 + 167 + 168 + printf("total %d fresh ingridients",fresh_ingridients); 169 + printf("total fresh ingridients possible: %lld\n",total_fresh_num); 170 + 171 + free(limits_arr); 172 + 173 + free(f); 174 + free(line); 175 + 176 + 177 + return 0; 178 + }
+1178
day_5/input.txt
··· 1 + 213743501161200-213743501161200 2 + 221359789392478-222960432116258 3 + 553905700373062-561794342755365 4 + 388351876706917-388578461376678 5 + 263685821321516-270464997549766 6 + 384957836075964-385057316204755 7 + 86932924454422-88726115602910 8 + 64713316693400-65189382496202 9 + 68179610157787-68454649435444 10 + 143154545648377-145980913110898 11 + 390250299542523-390843409397977 12 + 392162789636707-394167531415509 13 + 467795551515047-469145316638624 14 + 73412860995201-78319783604609 15 + 174577844186025-180222947242739 16 + 34889394659118-37852045203256 17 + 506719917120116-506719917120116 18 + 64999889315593-65189382496202 19 + 62511033442122-62882231057991 20 + 169629548448978-169629548448978 21 + 195991726717561-200347594718591 22 + 80800364897743-82410540424990 23 + 157966143122749-158625789879543 24 + 414893276002289-420734433214551 25 + 468854880571347-470178150823398 26 + 293047529057561-293047529057561 27 + 526293793744803-526800435871324 28 + 154610263545675-155018832807006 29 + 85676500485010-87494001551296 30 + 404052468013478-411059540873663 31 + 529805857574316-530354749652142 32 + 282126028703430-287392631951184 33 + 536612716581558-542001885354658 34 + 224389325429033-225956850054114 35 + 389327354686290-389941649666180 36 + 226458176996215-227998751964573 37 + 466681105242973-468035461798180 38 + 132182495488136-136864510598769 39 + 158625789879543-158943957000511 40 + 222498723695457-223722626496659 41 + 24396986945805-29009989981082 42 + 387070084421471-387699738663307 43 + 463761550427134-465101663712718 44 + 244484473250009-249824444617715 45 + 235682381324440-239428507922589 46 + 356542431952285-357218504633271 47 + 528809160802420-529163494010802 48 + 203275761047276-207893046967514 49 + 65189382496202-65740304733466 50 + 84564501332038-86342507935742 51 + 528809160802420-529739126171581 52 + 430824287436458-430824287436458 53 + 270464997549767-270464997549767 54 + 73412860995201-73412860995201 55 + 203275761047276-207893046967514 56 + 465765531974637-467339424840641 57 + 88308683283200-90314897336701 58 + 506719917120116-509378158464998 59 + 154610263545675-155018832807006 60 + 436351058276905-441549428537929 61 + 390250299542523-390501802123222 62 + 464766089052130-465995972804612 63 + 153723748856595-154247928476913 64 + 524957458539564-525444885761624 65 + 193355047594087-195991726717559 66 + 68057027039766-68454649435444 67 + 114292754379846-114292754379846 68 + 476176387291714-479287347759176 69 + 68727093315072-69054421292865 70 + 374010991378735-378095042001312 71 + 396702787271742-398555495412596 72 + 92985559435331-99083983384255 73 + 524317721420090-524645436296520 74 + 470916081729043-472406223184007 75 + 307193970359996-309957481846034 76 + 83208072709351-85336482970086 77 + 61908006035935-62767933777530 78 + 12440214380075-19413829756369 79 + 158268094987535-158625789879543 80 + 323855611951188-327225842492665 81 + 232121351950005-235682381324439 82 + 104580961113313-109652180451852 83 + 155719620755384-156378640409574 84 + 225242642256272-226838958939168 85 + 126345620041269-129628037616258 86 + 272979306019768-272979306019768 87 + 229571449179868-230955409924473 88 + 15572428843108-19413829756369 89 + 486438625661094-489174884685392 90 + 399063478386186-400626043814074 91 + 61434917885505-61908006035935 92 + 442807002499434-447467590937981 93 + 153470274802250-153891356149723 94 + 548528649335253-552132613556960 95 + 302406550101741-307193970359994 96 + 284836416410676-290905691766532 97 + 134736737710827-138821293926430 98 + 524645436296520-525444885761624 99 + 347299925469182-350731461622425 100 + 333121507005172-333121507005172 101 + 257633973479609-259311991697339 102 + 418350619486212-420734433214551 103 + 523873015780814-524032209716334 104 + 424331863324814-430824287436457 105 + 143154545648377-148152467497972 106 + 156770859353106-157228370844559 107 + 523401105399726-524032209716334 108 + 3672218268426-9069958349825 109 + 41190120499524-48710502110828 110 + 171431709160547-176780839877720 111 + 65740304733466-66283299959280 112 + 3672218268426-9069958349825 113 + 157444284967581-157743465985657 114 + 99083983384256-99083983384256 115 + 114292754379847-118122243442587 116 + 32783805912506-34889394659117 117 + 495774309849622-495774309849622 118 + 385597213338484-386130309524989 119 + 66422129062863-66711994098586 120 + 390501802123222-390843409397977 121 + 227420995218497-229137292369316 122 + 518765954978807-520809013033287 123 + 81872566000969-83813851796454 124 + 272979306019768-280055074059068 125 + 394469512488834-396279958092492 126 + 469546011173175-471346897231698 127 + 442807002499434-451270889383530 128 + 184738598610317-187210601572675 129 + 364359970290004-369109081626630 130 + 327225842492665-327225842492665 131 + 353087698181504-361406479744402 132 + 293047529057561-299710639297794 133 + 486438625661094-489174884685392 134 + 472788183962691-480272823246663 135 + 152000130191943-152486238796869 136 + 386858817856261-387699738663307 137 + 462503261552047-464039809812541 138 + 183175626133351-189172211000972 139 + 163807315460788-169629548448978 140 + 393534536834350-394918686174827 141 + 344389995827602-347299925469181 142 + 159774306485562-160419960771595 143 + 544514849402253-552132613556960 144 + 65400483278322-66283299959280 145 + 63641646788533-63945948546021 146 + 228387323493940-230123402570745 147 + 223334527687062-225118219054282 148 + 398001413033472-399528430973758 149 + 389120143291068-389327354686290 150 + 251886663550811-259311991697339 151 + 69054421292865-69216943568303 152 + 109652180451852-109652180451852 153 + 53011962076696-56344039055008 154 + 400162615237818-402020110303086 155 + 43204303716398-46879070810322 156 + 314744608126757-318669297711175 157 + 432956413748504-436351058276903 158 + 374010991378735-379580541653265 159 + 53011962076696-58576758868523 160 + 151246265148187-151690444980057 161 + 67160465476009-67649438641309 162 + 333121507005173-341135415342898 163 + 456177793236387-461879349449355 164 + 395508284503006-397494347386228 165 + 533093622413503-538889692659981 166 + 561794342755365-561794342755365 167 + 515616143391792-518765954978806 168 + 69696292125615-70040914201079 169 + 68727093315072-69401400390266 170 + 495774309849623-500237151028475 171 + 369109081626631-369109081626631 172 + 529163494010802-529436944344583 173 + 404052468013478-411059540873663 174 + 121847024509459-126345620041267 175 + 522880293422404-523179474172233 176 + 158459878825465-159131956260867 177 + 213743501161201-219471291456959 178 + 179 + 494837294376908 180 + 435660505746994 181 + 99786817997391 182 + 472909760977579 183 + 463484249547475 184 + 273865746097567 185 + 546948282990871 186 + 313905748059736 187 + 389220642255587 188 + 264910144325219 189 + 194634550937143 190 + 452503195637112 191 + 38664030641468 192 + 8643898228674 193 + 408947325836900 194 + 56337977420387 195 + 174507776974605 196 + 140836347671248 197 + 47631986998014 198 + 235031396283281 199 + 343857671631037 200 + 252684431369877 201 + 561260764726582 202 + 13377139290760 203 + 335659611077426 204 + 305254801428350 205 + 23068609919756 206 + 358157740175632 207 + 336124567002906 208 + 499856499644500 209 + 245581152411526 210 + 4607628398578 211 + 113989649477446 212 + 261695855054656 213 + 54145308170978 214 + 23643219088083 215 + 288564055768829 216 + 76218205231423 217 + 383056969666651 218 + 206049039348792 219 + 362866693952230 220 + 447390838499260 221 + 269419273985840 222 + 495173666576593 223 + 475030519522818 224 + 12103270345560 225 + 107629037149479 226 + 393860930903512 227 + 141626771549297 228 + 250924689541736 229 + 5883371952028 230 + 423912703644535 231 + 302546348630570 232 + 436937082048731 233 + 494664825705194 234 + 448188584703582 235 + 254291468010192 236 + 221243211979987 237 + 350545951774103 238 + 393592820188728 239 + 32794726074237 240 + 215351251387887 241 + 18789663384866 242 + 546887929110328 243 + 229634965624793 244 + 26225821034784 245 + 175436974010271 246 + 330555143105279 247 + 540559732802993 248 + 146048634742198 249 + 457763885033022 250 + 255063532513955 251 + 523233693563579 252 + 520111841799148 253 + 554058843495886 254 + 318786207342405 255 + 377363192140595 256 + 99808601402762 257 + 18925946943601 258 + 114133861116596 259 + 466658719803329 260 + 239088721753669 261 + 437089455846288 262 + 368941022635265 263 + 396739332676075 264 + 136405831558024 265 + 56176226086142 266 + 89188104356081 267 + 522069015255255 268 + 321118023164859 269 + 9031526519848 270 + 426715696390470 271 + 525707768388028 272 + 152077432064905 273 + 409969738179310 274 + 413539799236118 275 + 394325762684221 276 + 152819990377936 277 + 394401954863928 278 + 126602621671422 279 + 504598064766126 280 + 458638902263336 281 + 326459124993522 282 + 419281996008737 283 + 490842973818114 284 + 146271762366396 285 + 22503238293943 286 + 537920215050605 287 + 559195645649780 288 + 53366531225879 289 + 147488127813515 290 + 87770751897444 291 + 355793262392237 292 + 29238551733499 293 + 480135691758946 294 + 538362412784828 295 + 450359874870348 296 + 173926045560484 297 + 401263245119900 298 + 469761746266259 299 + 517263368251455 300 + 49071456365129 301 + 137992440004065 302 + 414963191734774 303 + 478773793672052 304 + 323893963358308 305 + 346609563056966 306 + 528752351256778 307 + 296671648977112 308 + 374729839695085 309 + 454860071033636 310 + 467162739020170 311 + 507732258880396 312 + 230301737270720 313 + 289177397090688 314 + 528799065232012 315 + 165854989903172 316 + 406394881004817 317 + 481447401833724 318 + 516889448667819 319 + 554061619704684 320 + 392059778405048 321 + 175159258924467 322 + 463421480856860 323 + 544635640616828 324 + 309477164734560 325 + 231037323484799 326 + 340860687007580 327 + 448875290293314 328 + 127397009585739 329 + 246830806645075 330 + 518431937476941 331 + 3732761639887 332 + 147285882576699 333 + 396422419852454 334 + 27478056069416 335 + 286717356301433 336 + 236893740878667 337 + 290016489594859 338 + 298887079519963 339 + 461497186313441 340 + 235329424183967 341 + 556647097855604 342 + 261197438978660 343 + 118073942807968 344 + 285360172331044 345 + 169445091271339 346 + 418603412598323 347 + 416679342584654 348 + 163804209188500 349 + 167161416515668 350 + 300589656673348 351 + 84155065043548 352 + 298520045126168 353 + 154549118044364 354 + 509513039742643 355 + 406174906841001 356 + 239965534880610 357 + 264241638530762 358 + 326907134654161 359 + 148801284014366 360 + 252845684706962 361 + 538160202161003 362 + 396627759613700 363 + 546079642043457 364 + 75651194219911 365 + 432586855556463 366 + 96802942627830 367 + 25041440445919 368 + 107116271154358 369 + 303702054634544 370 + 398781252434901 371 + 503172397854082 372 + 379315602131933 373 + 236979084549993 374 + 451397490649019 375 + 279868894290565 376 + 524617891089775 377 + 136961187947989 378 + 136429946001689 379 + 76950346304543 380 + 306928041509744 381 + 312915314588031 382 + 298998035287402 383 + 34760223536011 384 + 446404886235072 385 + 197388407848521 386 + 333191332684099 387 + 221740779665886 388 + 309416371878888 389 + 158477659448444 390 + 516680333458799 391 + 44853377628995 392 + 278888606895658 393 + 278420982927684 394 + 175703803052425 395 + 470568172737830 396 + 236084777219214 397 + 397984966672806 398 + 473425480788950 399 + 522025578442624 400 + 427215517454322 401 + 198299794101146 402 + 349413337275427 403 + 125618902680777 404 + 89314589371888 405 + 368825410886351 406 + 330191130666564 407 + 387752207575580 408 + 440138070603836 409 + 227890254261097 410 + 44488299718077 411 + 29751481585745 412 + 25028650437464 413 + 547595768878 414 + 174236076333058 415 + 133712293361829 416 + 540096229159911 417 + 360206980499620 418 + 258011259781602 419 + 549364690524601 420 + 10091206687143 421 + 470374190930049 422 + 179075060473731 423 + 377242979825409 424 + 352690157476711 425 + 278488530349263 426 + 384422855896670 427 + 49811728480863 428 + 267349043407318 429 + 489564767823505 430 + 73008037929843 431 + 124299946430397 432 + 217882757871908 433 + 108999668545307 434 + 20703850023939 435 + 496246608935789 436 + 541069367118771 437 + 305122372020761 438 + 115492357896852 439 + 193492845516396 440 + 417751256829819 441 + 285658063335359 442 + 246744409069648 443 + 351755993275651 444 + 98127769000175 445 + 482372026370776 446 + 457710650905360 447 + 18026862445928 448 + 108534833075078 449 + 169824794939485 450 + 559142599641987 451 + 2085564400281 452 + 309173175821638 453 + 456153160917877 454 + 293414602125014 455 + 547198783459634 456 + 76444012948089 457 + 529290472539497 458 + 355365766193271 459 + 287986193982431 460 + 173227908416238 461 + 551806007985042 462 + 186471826913763 463 + 121801161824669 464 + 97800001698241 465 + 342494173599273 466 + 12505387404524 467 + 306058580091348 468 + 318867143656603 469 + 428585013529288 470 + 256312606382787 471 + 366239026804887 472 + 51539372147365 473 + 66134064995673 474 + 79041166640102 475 + 75784996215689 476 + 287522598289639 477 + 332881462196418 478 + 520053787194950 479 + 297834256156760 480 + 46395714814142 481 + 478528279216500 482 + 283333063204819 483 + 245859459924907 484 + 473660316927145 485 + 307732071267576 486 + 277227366442821 487 + 390581386350646 488 + 376021035764980 489 + 463341164063984 490 + 185816349933763 491 + 241632149492477 492 + 289330190978899 493 + 476909402388343 494 + 458026449622767 495 + 257790586910592 496 + 174516863536188 497 + 285936912577790 498 + 401130002886351 499 + 458803825528219 500 + 478494606977638 501 + 345725593786871 502 + 138388443036459 503 + 282300697387892 504 + 71713317490775 505 + 556366167372211 506 + 456995326804110 507 + 247592812172057 508 + 494021760846937 509 + 371537593769295 510 + 170534224078136 511 + 42472063541628 512 + 8253779665434 513 + 372548475874699 514 + 9789888924117 515 + 405774436581168 516 + 108848101351560 517 + 356331145749819 518 + 102658847092504 519 + 497003148825168 520 + 202359692308749 521 + 378179874893748 522 + 288190427639734 523 + 67215625812110 524 + 93836607837463 525 + 39963768403407 526 + 461513540873237 527 + 54758410728278 528 + 469151923616890 529 + 166921111216013 530 + 172094825320701 531 + 401988768026836 532 + 72359177616839 533 + 73996848337616 534 + 156027952163011 535 + 80550172897080 536 + 272407697592724 537 + 319010392655020 538 + 105513600420820 539 + 162726193523288 540 + 535986651356692 541 + 436612082177264 542 + 212069750441845 543 + 524009300711044 544 + 3906518069903 545 + 511762793424455 546 + 435458211326830 547 + 182645647469308 548 + 386479321392427 549 + 547154129474513 550 + 189861778530296 551 + 538429181270504 552 + 507550826426915 553 + 444356931927172 554 + 358258263704862 555 + 479009393218306 556 + 124637474760302 557 + 48105008177613 558 + 79260117487309 559 + 174911990213797 560 + 500298985584761 561 + 326954412173914 562 + 295336439807937 563 + 395949666733917 564 + 443370872863471 565 + 318697699565865 566 + 427947513844159 567 + 511045858671785 568 + 203280107417109 569 + 6700597080245 570 + 348384357592517 571 + 374376031983939 572 + 260753794641180 573 + 56191981851288 574 + 97355512125554 575 + 60506801192793 576 + 84565744031887 577 + 488814694065249 578 + 161260860939794 579 + 337637633215227 580 + 173783730103701 581 + 142086002223119 582 + 207574240730436 583 + 436871109820151 584 + 461408177154461 585 + 382258137884632 586 + 440730273321561 587 + 159229941436332 588 + 166460057869524 589 + 15683339825778 590 + 68381063771276 591 + 143598887912420 592 + 96653310252281 593 + 234747364980280 594 + 128261783917087 595 + 103021515222116 596 + 477480443511452 597 + 114836796393351 598 + 176449720440695 599 + 275945902507716 600 + 99018309358801 601 + 254514953778996 602 + 471192665544357 603 + 358710048656100 604 + 469155211803836 605 + 203392280667538 606 + 192303210311382 607 + 15133914751416 608 + 263057847298987 609 + 304201025028695 610 + 109141830415556 611 + 62185120729939 612 + 347423458432248 613 + 1593697889240 614 + 4336364389626 615 + 249534740021091 616 + 245022245155666 617 + 378597629224414 618 + 217930033733263 619 + 47800102644184 620 + 138075535369981 621 + 357729021453863 622 + 349551010555520 623 + 414887370914099 624 + 395344795419827 625 + 521156568954976 626 + 272534129891028 627 + 371964108827244 628 + 227896489799466 629 + 249887136596757 630 + 16884793154524 631 + 317821877138354 632 + 81898773447364 633 + 443073486047140 634 + 247847253283552 635 + 315251502366423 636 + 102188123805733 637 + 303075733196562 638 + 557745658198349 639 + 206799637439489 640 + 451334768708210 641 + 97037065675992 642 + 257278920415657 643 + 56437781998953 644 + 44288968074472 645 + 113292234978530 646 + 151922731113530 647 + 391052761602056 648 + 267944508540614 649 + 343200180160422 650 + 288399431199285 651 + 93273619500930 652 + 75721595033881 653 + 550871884021335 654 + 149604081990381 655 + 512742597104092 656 + 455839846395368 657 + 445378642797525 658 + 16014807365216 659 + 30695616425451 660 + 43049956446441 661 + 270535131219725 662 + 4693914659902 663 + 335914961222544 664 + 272323132654404 665 + 528950169623633 666 + 445047908810129 667 + 419646793721765 668 + 213936570355528 669 + 395125528944776 670 + 141671410426457 671 + 453372985670055 672 + 222478883363391 673 + 439875818936907 674 + 303299784024612 675 + 56388748078988 676 + 318257306432227 677 + 215338536256842 678 + 532406515670856 679 + 172904036406734 680 + 25079121055090 681 + 326898571184918 682 + 383895798528344 683 + 416303301754527 684 + 490848856553941 685 + 320988109028453 686 + 223845273980771 687 + 94966656581935 688 + 190179292225210 689 + 419218075147010 690 + 230508834223536 691 + 548901527044748 692 + 297819409510702 693 + 464859798986245 694 + 118169686522273 695 + 207497906150129 696 + 512346201207054 697 + 1158097103310 698 + 459046195527588 699 + 186759288128078 700 + 96944724188350 701 + 392594151513159 702 + 234466454560389 703 + 68623818756541 704 + 246226233532203 705 + 114619533725580 706 + 493869659303676 707 + 313637481743263 708 + 534137643816612 709 + 264642463242404 710 + 377529710233522 711 + 87155833011856 712 + 35770041890308 713 + 516647262550256 714 + 265354534106177 715 + 406005422023368 716 + 272642225302759 717 + 85930020547676 718 + 284783735206766 719 + 436630505082911 720 + 15951172389804 721 + 444797637969258 722 + 97363222190880 723 + 133445802169347 724 + 272305925709773 725 + 548458915170143 726 + 430806456961455 727 + 245507121943314 728 + 160249013035249 729 + 527709486106910 730 + 367001001737708 731 + 518162583986624 732 + 183225672376704 733 + 296993625361143 734 + 231639876629108 735 + 407962526353092 736 + 67393637407153 737 + 85833159363453 738 + 49339824913993 739 + 28400800168478 740 + 15327853771250 741 + 354370364188649 742 + 201574969117946 743 + 552709965745032 744 + 213632623033074 745 + 312504618210213 746 + 327125906582053 747 + 144452289727950 748 + 203987516214332 749 + 479509321715515 750 + 88372152498413 751 + 307473270739765 752 + 245675091013202 753 + 336432122026158 754 + 41324911865648 755 + 458457956208945 756 + 542446938157188 757 + 89589403513696 758 + 24781388955739 759 + 305437870582706 760 + 348288413987487 761 + 431709614168751 762 + 276141784590342 763 + 466981918128601 764 + 372707468387142 765 + 102568457788486 766 + 349718918963076 767 + 104093272014233 768 + 265342553887934 769 + 339579325422624 770 + 516419655842307 771 + 325305930926652 772 + 409419378044930 773 + 290691078464777 774 + 538500176586611 775 + 104911135244051 776 + 460656158588869 777 + 19085848624265 778 + 550573802219161 779 + 22745479349256 780 + 65579588599422 781 + 254111896868958 782 + 43567781834275 783 + 90573006423916 784 + 45561710350423 785 + 149209374428586 786 + 446575143276470 787 + 550306254135662 788 + 181025204938463 789 + 97330974107531 790 + 379402147450993 791 + 241506356892172 792 + 168713148733973 793 + 48466869897953 794 + 528008864607078 795 + 393115054851961 796 + 165787328717415 797 + 287310392177289 798 + 551681935207092 799 + 122167522220188 800 + 132105403007176 801 + 317705294863715 802 + 109910998040619 803 + 446000068071441 804 + 235531799669044 805 + 146356734397746 806 + 47298585536802 807 + 42273110218235 808 + 444603089915716 809 + 241465851395725 810 + 109573813906530 811 + 231274862902914 812 + 537319538622584 813 + 157414189612508 814 + 221642178690563 815 + 245610078329995 816 + 528325158959332 817 + 145325570078081 818 + 12079144762793 819 + 531588757842283 820 + 547678261102872 821 + 127153144140359 822 + 305742973421716 823 + 8011027076203 824 + 477661996505800 825 + 466477744603636 826 + 403328720663418 827 + 507927453967381 828 + 538069184299013 829 + 214768582354766 830 + 137397594359581 831 + 187613809609389 832 + 357880338028129 833 + 433487759782156 834 + 487471717210901 835 + 180006387715886 836 + 326002409470383 837 + 76444888756813 838 + 444254908195532 839 + 148806304277047 840 + 479844016063762 841 + 330052487223106 842 + 240176280384525 843 + 411385336296896 844 + 354792309945488 845 + 305594460678296 846 + 40995915706785 847 + 39394966701507 848 + 89548663321944 849 + 548307369875750 850 + 488506179147436 851 + 121924775887669 852 + 148038179339071 853 + 338537681759411 854 + 468669066514854 855 + 184481225100823 856 + 360687191874324 857 + 489917124737512 858 + 183480059346292 859 + 210032333691837 860 + 415012143178873 861 + 425782508042329 862 + 206536230476631 863 + 69446550967892 864 + 456998663839841 865 + 487684484253300 866 + 132781025275839 867 + 51299076795592 868 + 214996080875736 869 + 395997740442896 870 + 229801883331266 871 + 410891218970154 872 + 44342335653173 873 + 468644958332092 874 + 133694753338744 875 + 15324257575984 876 + 382577259399786 877 + 371176455304440 878 + 273103366140744 879 + 473864877490707 880 + 348672546656929 881 + 346325654887690 882 + 204798752414288 883 + 205451628438977 884 + 2248039977575 885 + 236557577288755 886 + 246505641659146 887 + 441573876295181 888 + 554299527848615 889 + 368147889057080 890 + 337980441560978 891 + 108843538156956 892 + 214211872574501 893 + 222501948465259 894 + 199340300341502 895 + 57751894058447 896 + 387301004745509 897 + 555684169567228 898 + 444161010809973 899 + 44274057183558 900 + 457484483808702 901 + 299118893791597 902 + 278770127821305 903 + 19364490860923 904 + 269877412509975 905 + 362138446785346 906 + 407915043906975 907 + 110542007795632 908 + 351373538617793 909 + 178613301456939 910 + 419145884127302 911 + 337724653316807 912 + 273150978486771 913 + 314964765668119 914 + 471968715772891 915 + 357610841553825 916 + 22133316659832 917 + 208155444980927 918 + 509198516401694 919 + 411253902813469 920 + 227031471430627 921 + 446602597121154 922 + 271273314812585 923 + 415798095859971 924 + 561190340020923 925 + 336975452894927 926 + 143875972527564 927 + 290796527780450 928 + 562533759378622 929 + 116821329895853 930 + 386671228899496 931 + 317327089314224 932 + 183632275635096 933 + 273373429456521 934 + 129515707014799 935 + 110676169506793 936 + 233033183096270 937 + 318333250308412 938 + 112033225565880 939 + 519454679823055 940 + 55656519297819 941 + 377451642372971 942 + 338691010626694 943 + 64777634972758 944 + 436208855797645 945 + 415156993450774 946 + 98020363049302 947 + 42655570576535 948 + 34400406221986 949 + 290610597270086 950 + 537265183350038 951 + 400911093968583 952 + 525318854899855 953 + 248415410979120 954 + 418842405171486 955 + 411566017836771 956 + 425657631898340 957 + 354259572729994 958 + 268446068326870 959 + 296070266615673 960 + 136227729615321 961 + 120047629033730 962 + 406964876482178 963 + 137521850223080 964 + 92611826977927 965 + 331877322852943 966 + 479781531711867 967 + 266206661846269 968 + 347578536598669 969 + 89240023766690 970 + 529174586943339 971 + 84839756252558 972 + 419979950328255 973 + 547500684314327 974 + 280045500991504 975 + 215483226398738 976 + 441596111446605 977 + 302694962708225 978 + 273892147226306 979 + 482132415192397 980 + 102702250742943 981 + 223089452700980 982 + 457807726448257 983 + 384562645765746 984 + 277781338567261 985 + 439822548783525 986 + 183776192242043 987 + 301325514128398 988 + 70021389620076 989 + 336918674037773 990 + 68295253195049 991 + 543695343432503 992 + 111249314175356 993 + 7690585447477 994 + 309542200032252 995 + 103628229231634 996 + 73718547163740 997 + 159803357847773 998 + 430786036978468 999 + 415204380827690 1000 + 48045918311352 1001 + 517000580666897 1002 + 325917367515042 1003 + 426507802694299 1004 + 526144643790360 1005 + 513035119218192 1006 + 315794526632610 1007 + 285574806997324 1008 + 276841825017615 1009 + 179635895379213 1010 + 325755181311001 1011 + 524060550844191 1012 + 91712045450912 1013 + 77966935288136 1014 + 264428541284938 1015 + 524847707306416 1016 + 111105350913783 1017 + 346301400064114 1018 + 556613923238451 1019 + 472099250670418 1020 + 371207522154824 1021 + 451823217286595 1022 + 357256514424263 1023 + 372048331394790 1024 + 434691928665739 1025 + 560829027337169 1026 + 16136507872053 1027 + 282364153898411 1028 + 154085261680230 1029 + 254154288276590 1030 + 514028216189442 1031 + 545333427544222 1032 + 476497025736792 1033 + 242355804527146 1034 + 561598070577352 1035 + 118400176536972 1036 + 375682605796962 1037 + 399133654154343 1038 + 201628057251316 1039 + 217572056496332 1040 + 533395907107346 1041 + 47345345286797 1042 + 7408156832896 1043 + 522616875123776 1044 + 349641074502968 1045 + 345818104113036 1046 + 438218046900677 1047 + 31628293548083 1048 + 351605047809133 1049 + 359444834536162 1050 + 290228149997469 1051 + 135905576277424 1052 + 84612883197372 1053 + 189982680788991 1054 + 450138577332891 1055 + 136439932241119 1056 + 187799240856577 1057 + 68578204608926 1058 + 134334871260185 1059 + 291561127203042 1060 + 273974000047959 1061 + 174624183735646 1062 + 18383048241682 1063 + 556252702946152 1064 + 387793821456466 1065 + 298566510001603 1066 + 172815513476927 1067 + 33902411018515 1068 + 555994633611969 1069 + 289184312520430 1070 + 436658715830883 1071 + 470864228533567 1072 + 164090356849964 1073 + 98782919658558 1074 + 97942176959956 1075 + 112901798817150 1076 + 35208936896656 1077 + 14353996552438 1078 + 471473766116537 1079 + 480180311744636 1080 + 499204584847002 1081 + 80611198707461 1082 + 544525064031093 1083 + 229232247132363 1084 + 162849540618442 1085 + 492975074294900 1086 + 166448581711132 1087 + 114764389841759 1088 + 63292143206629 1089 + 98480857792796 1090 + 157851646383721 1091 + 253474206387522 1092 + 354978928842494 1093 + 278747160618146 1094 + 4530472691471 1095 + 58079854789591 1096 + 66267035140727 1097 + 311056476691269 1098 + 557762351202903 1099 + 197758525541161 1100 + 437268149565806 1101 + 313236543511296 1102 + 302427918967126 1103 + 400691760604857 1104 + 399668277458282 1105 + 223494949882340 1106 + 46570814488202 1107 + 204451824914507 1108 + 345698026918708 1109 + 497928342405563 1110 + 325773432317635 1111 + 93545891401889 1112 + 5585896974427 1113 + 356380459100139 1114 + 264230752597112 1115 + 426543387431711 1116 + 387146966449194 1117 + 41228535640790 1118 + 509087992955574 1119 + 489729610164135 1120 + 416479576139310 1121 + 28845488051941 1122 + 522009267546744 1123 + 271000859618955 1124 + 283750554123411 1125 + 410419160607446 1126 + 185499005938127 1127 + 471551666427620 1128 + 58626479872089 1129 + 42972264624877 1130 + 524613104175528 1131 + 27852888528989 1132 + 237204455550497 1133 + 288326266418244 1134 + 63065149157014 1135 + 553756535652764 1136 + 282436178910576 1137 + 88402747933723 1138 + 400823646916103 1139 + 223363824772513 1140 + 525071673732969 1141 + 537259982319875 1142 + 276682773539699 1143 + 398451590620752 1144 + 245054501306549 1145 + 464479921104086 1146 + 457043633831813 1147 + 516586215954486 1148 + 64884357708824 1149 + 56128129974389 1150 + 152412022204482 1151 + 222723024889271 1152 + 199274377091885 1153 + 477985828686667 1154 + 461997935560695 1155 + 544878475633187 1156 + 173350091865783 1157 + 28043191569632 1158 + 550154791633306 1159 + 95957091506410 1160 + 148749440627953 1161 + 363647261163259 1162 + 137891120244035 1163 + 292700540347170 1164 + 7279385311717 1165 + 127148348879474 1166 + 470000742634139 1167 + 144166016173754 1168 + 394128803397657 1169 + 361074837077952 1170 + 126989419234613 1171 + 420362060242891 1172 + 404091808985110 1173 + 118996430880710 1174 + 108513159619332 1175 + 245110820984873 1176 + 404371687077287 1177 + 92684280085493 1178 + 109303133175033
+11
day_5/mini.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