- commit
- 466594eb53070c607637491ae1ddf43a0a229012
- parent
- bd1eb2098f7ac65aaa35099ccf257c873057b2fe
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2025-12-05 13:53
2025-12-05
Diffstat
| A | 2025/05/input.txt | 1178 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | 2025/05/solution.zig | 82 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | 2025/05/test.txt | 11 | +++++++++++ |
3 files changed, 1271 insertions, 0 deletions
diff --git a/2025/05/input.txt b/2025/05/input.txt
@@ -0,0 +1,1178 @@ -1 1 90876390158586-99371575473204 -1 2 141258267394867-149613795277295 -1 3 114352619044986-116556737957603 -1 4 496343406752773-499182624059648 -1 5 87359911540483-87539506199605 -1 6 85673777496030-86318273612057 -1 7 332583427607236-340324718339476 -1 8 275408809160633-280084260304217 -1 9 344896263920634-349859871462659 -1 10 373928423179738-380690534659312 -1 11 417743034648014-418071037437529 -1 12 386959031977450-390566109048119 -1 13 252452420296913-252936125659291 -1 14 111174688657181-113775499461222 -1 15 122777011189689-127167385054796 -1 16 456058047019765-456296360950336 -1 17 211397092722052-216804535064877 -1 18 221810768643796-226724511551251 -1 19 152624848414895-157415393803906 -1 20 89904241743331-90052773587988 -1 21 122777011189689-122777011189689 -1 22 416379059689149-417011326470564 -1 23 117957581766055-120046942543383 -1 24 496343406752773-499182624059648 -1 25 181104353660135-183040639636842 -1 26 253542703667153-253745956803388 -1 27 86318273612057-86643206002641 -1 28 367926272582055-367926272582055 -1 29 186437316592844-188146979854730 -1 30 515848576564116-518421101765630 -1 31 528755492634142-529984862935617 -1 32 255003475815792-255808567067998 -1 33 32657821999605-34947413077130 -1 34 256501995838725-257149482975764 -1 35 456985095151714-457493597176878 -1 36 454067611759278-454254905285358 -1 37 252207745527457-252452420296913 -1 38 327983918520728-329470490991142 -1 39 446739162991951-450851882535949 -1 40 50938120834653-56238196224716 -1 41 458304744146293-459085105793951 -1 42 502745313557205-505059448157435 -1 43 460816711199472-461519964842618 -1 44 113001096176801-114951970790650 -1 45 414608487329960-415315808855042 -1 46 459723301780494-460267795450900 -1 47 243470544687797-243470544687797 -1 48 297573056530509-301233718284875 -1 49 373928423179738-373928423179738 -1 50 260326174863435-260911923751753 -1 51 398066274502603-399211458376929 -1 52 460267795450900-461110539940075 -1 53 257149482975764-257904304553825 -1 54 251624602215023-252452420296913 -1 55 460267795450900-460816711199472 -1 56 441248141074895-441248141074895 -1 57 344896263920633-344896263920633 -1 58 193885735012008-193885735012008 -1 59 88869927745829-89268404263623 -1 60 466198614887700-466198614887700 -1 61 87539506199605-88171474116217 -1 62 185018103265947-186984250274769 -1 63 420393536451304-420531818928372 -1 64 461110539940075-461765857602637 -1 65 322910000821537-324401786180173 -1 66 243470544687797-248680587367104 -1 67 104687083217159-108357959016794 -1 68 221810768643796-226724511551251 -1 69 239681427112342-239681427112342 -1 70 256976515051550-257676370926541 -1 71 329142947096190-330556394434212 -1 72 171717858253493-179229923962319 -1 73 132077766588073-139072047044284 -1 74 306264986633411-310078028090529 -1 75 272204825838361-275408809160632 -1 76 139072047044285-139072047044285 -1 77 313531872327168-320586283321557 -1 78 475084991181179-480862930243658 -1 79 413974790503766-414801891454972 -1 80 11141570104725-11141570104725 -1 81 259068794831487-259154793582483 -1 82 89184008289399-89552781322884 -1 83 363085957395237-367926272582055 -1 84 425727121854836-428443044656873 -1 85 416086295692540-416844833117190 -1 86 466198614887701-468841081639720 -1 87 323757108257510-325454348822436 -1 88 510374251359826-512323122653236 -1 89 554198235000456-559028613906715 -1 90 259068794831487-259154793582483 -1 91 11141570104726-15933553611969 -1 92 485450557338398-490887581884439 -1 93 26152338987444-27756185674740 -1 94 256633357207677-256976515051550 -1 95 256501995838725-256633357207677 -1 96 253186913055786-253873226345555 -1 97 261960824978986-265261199906477 -1 98 327032432389889-328659634659269 -1 99 416379059689149-416561357259205 -1 100 475084991181179-477100092347951 -1 101 80956967574891-81226489981139 -1 102 214875225414603-220846748135661 -1 103 394633239295468-399211458376929 -1 104 414801891454972-415456565595093 -1 105 56238196224716-56238196224716 -1 106 504488488179997-506512034077014 -1 107 444246560749102-447660244795200 -1 108 459481552442801-459723301780494 -1 109 1151710660142-7676495585938 -1 110 282235665911450-291089830552559 -1 111 459481552442801-460267795450900 -1 112 193885735012009-196904666162586 -1 113 41433078795972-46377519150175 -1 114 282235665911450-287812146896127 -1 115 352370106124031-361126889963928 -1 116 418576273148305-419275080135414 -1 117 456558354505161-456985095151714 -1 118 406254524299651-408295233216740 -1 119 182676327706062-184190660357077 -1 120 404243543603548-411168368508367 -1 121 63167243253321-68525533143111 -1 122 87539506199605-87781870827527 -1 123 325058038147145-326452796233371 -1 124 534005664637784-540410603076141 -1 125 65588881521349-68525533143111 -1 126 161884727433167-169964205711219 -1 127 488387778825741-490887581884439 -1 128 163911135344580-167399671914139 -1 129 325791836005836-327307042385742 -1 130 458459382967662-459308823907866 -1 131 454407882296934-455213313300674 -1 132 302993612904685-307549467225504 -1 133 187532421272857-189593807559271 -1 134 207068387403153-208741925105837 -1 135 72754037016880-77809090376660 -1 136 415791999789505-416561357259205 -1 137 546869080124463-550349236700735 -1 138 46377519150176-49741246877607 -1 139 32657821999605-38449441060726 -1 140 116302433094431-118583152969685 -1 141 457493597176878-458087415213352 -1 142 235615253036354-239681427112342 -1 143 329956222857843-331408496821644 -1 144 383312762819365-386959031977448 -1 145 456296360950336-456985095151714 -1 146 23021223252720-26152338987442 -1 147 506109175507315-508063496690513 -1 148 507447031716905-509193320936404 -1 149 423802746954042-430254451463202 -1 150 88171474116217-88869927745829 -1 151 101813796440614-107372968985639 -1 152 508816435279286-510816216571702 -1 153 80956967574891-81579222275923 -1 154 202423353872861-207068387403151 -1 155 94152340752372-96668070795648 -1 156 332583427607236-340324718339476 -1 157 436337997335654-441248141074895 -1 158 419814839511698-420393536451304 -1 159 176077801338504-179229923962319 -1 160 540410603076142-540410603076142 -1 161 256309585648535-256501995838725 -1 162 420745790071546-421549488542584 -1 163 524639744941000-528755492634141 -1 164 261960824978986-269135377690892 -1 165 89184008289399-89904241743331 -1 166 183939053345146-185846624617375 -1 167 1151710660142-7676495585938 -1 168 515848576564116-515848576564116 -1 169 455213313300674-456058047019765 -1 170 321763411738242-323539728298137 -1 171 419275080135414-420031344685115 -1 172 157415393803907-157415393803907 -1 173 189005144266116-190548795231625 -1 174 320586283321558-320586283321558 -1 175 294114537270800-297573056530508 -1 176 559028613906717-561202714579424 -1 177 81827245866566-82041965750458 -1 178 -1 179 9163401197559 -1 180 158818456706003 -1 181 312148307515374 -1 182 552153472513629 -1 183 233662752535988 -1 184 146489947306252 -1 185 322269632307881 -1 186 516457499115886 -1 187 317387035609686 -1 188 490205655626613 -1 189 289812623697579 -1 190 139383223625070 -1 191 67759227064352 -1 192 279739867607753 -1 193 340475327853129 -1 194 370398463277050 -1 195 454267632298356 -1 196 497044296776404 -1 197 474166836905668 -1 198 413944736615662 -1 199 387454434132096 -1 200 192722333849769 -1 201 32965418738730 -1 202 331129551356353 -1 203 434914239786762 -1 204 392691761433652 -1 205 482371793886983 -1 206 374373818000539 -1 207 522373042671537 -1 208 59423956013146 -1 209 475513986474369 -1 210 166355760619544 -1 211 326793642144617 -1 212 104598990034711 -1 213 533074262543939 -1 214 80920631052849 -1 215 213932326779430 -1 216 228043361172934 -1 217 273500909262866 -1 218 311709834673991 -1 219 27147906651339 -1 220 110260983204379 -1 221 421240409276742 -1 222 229071889508430 -1 223 495453447279009 -1 224 112813389763489 -1 225 168199272480193 -1 226 221721895000 -1 227 231047822563019 -1 228 5815865816814 -1 229 515698033225541 -1 230 429093425874850 -1 231 376453098878620 -1 232 88419601648989 -1 233 24100796668620 -1 234 142295587573371 -1 235 546576259992197 -1 236 504995298082248 -1 237 425396211534385 -1 238 41106294013243 -1 239 62045036852276 -1 240 291968305718857 -1 241 523836161515386 -1 242 273656556558051 -1 243 302620888906281 -1 244 463772229712677 -1 245 236869791096602 -1 246 237406143099062 -1 247 290505453886975 -1 248 473168239853708 -1 249 330030387153064 -1 250 402463573410913 -1 251 386331854322772 -1 252 61999920910292 -1 253 215043846226668 -1 254 454056355913415 -1 255 118316912777301 -1 256 271047239440225 -1 257 76951168145227 -1 258 320766788765089 -1 259 346357522773576 -1 260 532911529610311 -1 261 366000529725277 -1 262 455755040889550 -1 263 314769400218117 -1 264 414826999593372 -1 265 431602638534259 -1 266 362131063404284 -1 267 495577867401239 -1 268 517870462628462 -1 269 215806643565249 -1 270 278447101395456 -1 271 390604559482823 -1 272 180305906398963 -1 273 138270376297296 -1 274 253104258907692 -1 275 19451931757985 -1 276 33059531481229 -1 277 415933257870503 -1 278 371448343538087 -1 279 228270815962830 -1 280 228929272310964 -1 281 109415109234230 -1 282 519097524550057 -1 283 259541994082476 -1 284 336565486295871 -1 285 76523670048561 -1 286 562105673640580 -1 287 508928549032738 -1 288 456651120036719 -1 289 389270902975389 -1 290 291856972627889 -1 291 339062201650619 -1 292 484202497295920 -1 293 155218132273661 -1 294 443260799194487 -1 295 435333497560717 -1 296 240426086362000 -1 297 22189454203919 -1 298 12630784256797 -1 299 544241292792708 -1 300 166529170866816 -1 301 127920840414204 -1 302 476268217187456 -1 303 94730309508361 -1 304 508647899880782 -1 305 207401551940062 -1 306 280631657451479 -1 307 489282369430820 -1 308 75310710948582 -1 309 123570783918792 -1 310 231506048891976 -1 311 168886616879671 -1 312 529496564010583 -1 313 412105755885460 -1 314 434805679090 -1 315 469197403809928 -1 316 124807001131180 -1 317 46013469504336 -1 318 522789662225284 -1 319 22940845724776 -1 320 406862187442980 -1 321 458400644513339 -1 322 384460560435837 -1 323 283085649647800 -1 324 13655606098859 -1 325 445044089462779 -1 326 431142672311911 -1 327 79056720440152 -1 328 34401759229502 -1 329 520178161148095 -1 330 248098930928116 -1 331 521983593833953 -1 332 470676778027815 -1 333 343743064511549 -1 334 250938971153324 -1 335 76071059146436 -1 336 356642465746953 -1 337 269717730101950 -1 338 213215982569373 -1 339 129096003648861 -1 340 330155928599697 -1 341 483074804574399 -1 342 274522393652777 -1 343 3186010395731 -1 344 515647883180694 -1 345 523409091260622 -1 346 227252765858538 -1 347 227992100046168 -1 348 489005994340846 -1 349 491755629466279 -1 350 550706195147989 -1 351 502413482030902 -1 352 536764233752494 -1 353 195744475420682 -1 354 438578075896473 -1 355 402003055849056 -1 356 259319376114235 -1 357 222208130323604 -1 358 403936234521711 -1 359 100804574522328 -1 360 390511861943606 -1 361 318572595191055 -1 362 160389886929065 -1 363 188466464305356 -1 364 329651347488537 -1 365 482512538416220 -1 366 302122544474297 -1 367 195953623760947 -1 368 427097476543924 -1 369 412184206398442 -1 370 39957361112244 -1 371 139173317451174 -1 372 406965029436465 -1 373 146047425495746 -1 374 532076910617545 -1 375 64001031218127 -1 376 325191999419252 -1 377 299948256045416 -1 378 308524702563764 -1 379 382054174168567 -1 380 561410441323586 -1 381 467190688573899 -1 382 385039391610586 -1 383 340664876995588 -1 384 148409523639466 -1 385 438462690950354 -1 386 150498623961148 -1 387 58297508270067 -1 388 428013505901864 -1 389 439062183845584 -1 390 487768272055681 -1 391 200065511574509 -1 392 475023760400379 -1 393 288930064006407 -1 394 134609446334668 -1 395 266949872643074 -1 396 3598650469254 -1 397 400301389511327 -1 398 179382777219145 -1 399 483102225664896 -1 400 253049177124215 -1 401 406991315675070 -1 402 86779597538033 -1 403 256063526955116 -1 404 167873830134010 -1 405 506946518324093 -1 406 95560235590399 -1 407 389106647238673 -1 408 509770058801329 -1 409 160599674880171 -1 410 372405620083832 -1 411 524085421989876 -1 412 128450768102669 -1 413 314670218488691 -1 414 405732007118180 -1 415 506854658281385 -1 416 460096512969966 -1 417 123257990153394 -1 418 290327798056064 -1 419 227891675768131 -1 420 476552467765126 -1 421 182465777803326 -1 422 49472613689209 -1 423 166612189347920 -1 424 276183711911464 -1 425 324644549597227 -1 426 338911989317554 -1 427 19775707684504 -1 428 558934531905621 -1 429 197151099516336 -1 430 110140750207674 -1 431 532433347511924 -1 432 228487326329147 -1 433 364841086687069 -1 434 287624941045705 -1 435 300137110851409 -1 436 396237045817688 -1 437 185852174370908 -1 438 511022157652409 -1 439 308630498267077 -1 440 218988945763277 -1 441 71505631073776 -1 442 22473741394600 -1 443 14514185584946 -1 444 8522304411766 -1 445 163563871234779 -1 446 75764347817641 -1 447 169253373130675 -1 448 420875656317088 -1 449 333327956149323 -1 450 98167243583156 -1 451 389237767146983 -1 452 500971720160178 -1 453 11121122140355 -1 454 156836458586559 -1 455 176466657233638 -1 456 262405791748990 -1 457 26990304712966 -1 458 168075776760200 -1 459 560300568485362 -1 460 561357465419392 -1 461 218760168067223 -1 462 301093214656467 -1 463 438345062050910 -1 464 543783894224718 -1 465 502309971524381 -1 466 456720070982782 -1 467 58609785487716 -1 468 531844320575931 -1 469 135675280951318 -1 470 379235744218694 -1 471 277698819891289 -1 472 476257535812746 -1 473 427950844104107 -1 474 47508063323791 -1 475 66404235049100 -1 476 323794074934999 -1 477 205459853350577 -1 478 2503030994488 -1 479 286481823235757 -1 480 353144787329504 -1 481 74155955057876 -1 482 405052891182672 -1 483 228630232690288 -1 484 451860760508088 -1 485 493168123109603 -1 486 118147546878371 -1 487 250043361890479 -1 488 85000875657667 -1 489 472919880458102 -1 490 101479239794725 -1 491 433232752433446 -1 492 6004942799667 -1 493 503163883398050 -1 494 297372394082296 -1 495 417544946940533 -1 496 54942764933530 -1 497 87840999902572 -1 498 60444569823530 -1 499 39751084976757 -1 500 241587172388837 -1 501 156995585561033 -1 502 391073899857904 -1 503 265850214502840 -1 504 100532551452657 -1 505 400841316189118 -1 506 541838639960011 -1 507 292463108221224 -1 508 203549719031344 -1 509 66820765271822 -1 510 402372550222314 -1 511 435136106150290 -1 512 534173470052307 -1 513 489360037730027 -1 514 471292587823117 -1 515 378685408561352 -1 516 516796187772506 -1 517 61966242073578 -1 518 364441060684284 -1 519 546323227244850 -1 520 246500711552813 -1 521 408737703942108 -1 522 393352755177135 -1 523 443974804274596 -1 524 370111831104358 -1 525 64851438183175 -1 526 329578230359798 -1 527 308712280262283 -1 528 456691674773908 -1 529 26592466612721 -1 530 550232303829458 -1 531 304401996535246 -1 532 379603682500263 -1 533 433792177716816 -1 534 369562115185447 -1 535 448657578625855 -1 536 446111339603810 -1 537 199520316817287 -1 538 303863579350994 -1 539 219716209883783 -1 540 69582482351798 -1 541 352188100111117 -1 542 60309071000910 -1 543 276221637847234 -1 544 424849029072321 -1 545 533625434713137 -1 546 108788892776662 -1 547 320644119591327 -1 548 169943688622612 -1 549 290307918024920 -1 550 271365530616627 -1 551 149871509966353 -1 552 399899313659808 -1 553 498618926374216 -1 554 340969868432338 -1 555 114862416369659 -1 556 126574702887760 -1 557 273670149879536 -1 558 62318600534005 -1 559 483599374241984 -1 560 337847254095524 -1 561 374183055713382 -1 562 245079673743465 -1 563 219825762304528 -1 564 490433378105545 -1 565 390065703268007 -1 566 234234595195547 -1 567 400209681791812 -1 568 143314439288739 -1 569 40786640975635 -1 570 228002660758159 -1 571 352047935264686 -1 572 482850250578180 -1 573 147404348187492 -1 574 240965917923046 -1 575 241814111818082 -1 576 294019641838058 -1 577 43150274310742 -1 578 442250297055054 -1 579 55855691882049 -1 580 477909042957987 -1 581 475653207653884 -1 582 323652468591385 -1 583 112473621264323 -1 584 70558702366597 -1 585 120748204089005 -1 586 229988963434675 -1 587 248591630801994 -1 588 402442958335548 -1 589 376586653986537 -1 590 129152683235432 -1 591 516024993616305 -1 592 471096479102683 -1 593 446539545827961 -1 594 173407602929549 -1 595 368512742348401 -1 596 4974356897661 -1 597 173386990766979 -1 598 509415772325521 -1 599 544967878526356 -1 600 308861850100698 -1 601 161266318267407 -1 602 502384393689113 -1 603 281594749221165 -1 604 142930467360218 -1 605 147725481586832 -1 606 427519529321106 -1 607 193960630536623 -1 608 541411528670786 -1 609 515852192999453 -1 610 72306146040239 -1 611 239856994563249 -1 612 488838850839069 -1 613 75992261996936 -1 614 172649820425983 -1 615 223554177457525 -1 616 7947242023868 -1 617 212525448215192 -1 618 370575390007937 -1 619 426773541718656 -1 620 393684739731309 -1 621 19419866742845 -1 622 206871913760521 -1 623 517596221415579 -1 624 490849438183981 -1 625 361305228082459 -1 626 469230613059868 -1 627 332884151592894 -1 628 461945523327885 -1 629 397967487629525 -1 630 412744254405305 -1 631 541433275689019 -1 632 263528603494908 -1 633 326653124630779 -1 634 365705824496935 -1 635 77108503111724 -1 636 501949275678612 -1 637 180395652478059 -1 638 156282882623447 -1 639 300079669533627 -1 640 94607711515619 -1 641 190512807645304 -1 642 240305269046027 -1 643 207555970577494 -1 644 358220806573386 -1 645 55848633614325 -1 646 242352917241528 -1 647 393172820334607 -1 648 114761704646873 -1 649 341156052735276 -1 650 468622402320741 -1 651 524894314811449 -1 652 297996614600919 -1 653 410758156001249 -1 654 531648768240087 -1 655 145904362489893 -1 656 179726903564587 -1 657 145255790527460 -1 658 405526082561317 -1 659 531715404944063 -1 660 230115193150993 -1 661 416396461734549 -1 662 337025968848420 -1 663 186509140483017 -1 664 238086655337739 -1 665 214079795664617 -1 666 347558882961952 -1 667 136513605518284 -1 668 390027822564267 -1 669 547137150734989 -1 670 229060542693538 -1 671 496229309693995 -1 672 82317633430589 -1 673 108124050772686 -1 674 239807288086906 -1 675 275932804089630 -1 676 103043176331928 -1 677 506201519496778 -1 678 130687159737423 -1 679 392708106920295 -1 680 110481569204431 -1 681 179105320289608 -1 682 264036775187365 -1 683 46805588609893 -1 684 477157518831410 -1 685 224264159905849 -1 686 466088228218369 -1 687 55184185982381 -1 688 173229622178475 -1 689 294966387937187 -1 690 480066217349134 -1 691 287992196025558 -1 692 13321691326655 -1 693 91239233050191 -1 694 555326286930055 -1 695 552237122648344 -1 696 145649886337951 -1 697 447468549575922 -1 698 246636476258824 -1 699 23475383401281 -1 700 228887424352427 -1 701 395061670155969 -1 702 459874017290483 -1 703 476511078044412 -1 704 145329436670439 -1 705 207577901193175 -1 706 205891862825979 -1 707 903469712595 -1 708 8000788049680 -1 709 123901070404658 -1 710 30907016963061 -1 711 203416039040784 -1 712 94186956642008 -1 713 436606529722434 -1 714 442437978608495 -1 715 425927204356303 -1 716 145170436587298 -1 717 122664373333703 -1 718 39094428095591 -1 719 243812133950830 -1 720 152581536372668 -1 721 417537697081911 -1 722 477688275601426 -1 723 292039918013249 -1 724 483229844663431 -1 725 529029265710294 -1 726 487284133619794 -1 727 477219832461903 -1 728 461913207611042 -1 729 34619037866000 -1 730 463558261470208 -1 731 300569744130936 -1 732 81010018133367 -1 733 445282904725230 -1 734 2474275246313 -1 735 200236325813831 -1 736 83639619277997 -1 737 78107940986614 -1 738 268326963891666 -1 739 494445016521611 -1 740 504513790230498 -1 741 109740931456853 -1 742 405071938369436 -1 743 306591121373183 -1 744 241372578075831 -1 745 478129328816854 -1 746 323661724446809 -1 747 62229413812159 -1 748 358598748834599 -1 749 478352481988622 -1 750 542021029540667 -1 751 427862518906240 -1 752 464193738202897 -1 753 157318230602906 -1 754 334719268058319 -1 755 326130625359688 -1 756 144433385256600 -1 757 532168446486435 -1 758 350365498630427 -1 759 119294473662906 -1 760 251772035826073 -1 761 309341122232480 -1 762 277294833423452 -1 763 422991556451958 -1 764 332787708026536 -1 765 262647695377177 -1 766 533602397924924 -1 767 543358025330181 -1 768 358083406257181 -1 769 43432758399977 -1 770 90147171812289 -1 771 472757049368060 -1 772 120430070833630 -1 773 495908387968493 -1 774 65905441429403 -1 775 548075678549952 -1 776 450772081368588 -1 777 411428975275261 -1 778 532143822439735 -1 779 360487891298170 -1 780 524355457837910 -1 781 485251765984509 -1 782 364413650232083 -1 783 247841493153820 -1 784 85628937694361 -1 785 307820479019535 -1 786 109291219982556 -1 787 284051352967304 -1 788 343127418808644 -1 789 464919033036006 -1 790 258753649449837 -1 791 484862959573138 -1 792 53791498540362 -1 793 403218669609798 -1 794 205252995343532 -1 795 383493082192476 -1 796 424707722997380 -1 797 34353856900045 -1 798 170019411727923 -1 799 160269542017778 -1 800 504219378323988 -1 801 403321219554501 -1 802 201300551196654 -1 803 319996239472553 -1 804 246188285716406 -1 805 115634302599169 -1 806 494255890862599 -1 807 520116870396480 -1 808 477761337871643 -1 809 237134047844955 -1 810 68007812775645 -1 811 260692214260301 -1 812 369410296952736 -1 813 253139278893076 -1 814 500500707235771 -1 815 554206514854411 -1 816 491626306176221 -1 817 369541880968860 -1 818 91074379331282 -1 819 6981741781316 -1 820 425219423726320 -1 821 497674134416629 -1 822 352711823736717 -1 823 305855141908927 -1 824 245330763153570 -1 825 208522511841849 -1 826 527414825839210 -1 827 446722531333910 -1 828 148832513067070 -1 829 63127914832898 -1 830 529366826445946 -1 831 296637939126715 -1 832 10885264412200 -1 833 346772905518748 -1 834 20831956813725 -1 835 312093055835434 -1 836 320058688361080 -1 837 235611753352351 -1 838 120731399869570 -1 839 6546551846336 -1 840 288190794297225 -1 841 283832151780669 -1 842 539294969987460 -1 843 341141905348871 -1 844 265953167786262 -1 845 38329564906528 -1 846 201165253988296 -1 847 162836942660631 -1 848 38261693765967 -1 849 147723885738795 -1 850 83483489082914 -1 851 101696334853405 -1 852 161738173925829 -1 853 269249235474100 -1 854 518575875504063 -1 855 180389277419841 -1 856 137798491144289 -1 857 396588303986958 -1 858 213422286172624 -1 859 128865879110556 -1 860 545746064994936 -1 861 472500224632826 -1 862 293514134134217 -1 863 498986627481586 -1 864 167460411743475 -1 865 49403350524909 -1 866 300711700454377 -1 867 174168466141927 -1 868 162164924721141 -1 869 306591969380774 -1 870 50044119038161 -1 871 456920190658338 -1 872 101971820817671 -1 873 368349811077317 -1 874 198148828247087 -1 875 242738645458621 -1 876 189872005297387 -1 877 239238571620031 -1 878 393965632653044 -1 879 219647576405230 -1 880 262712915492349 -1 881 384939878129868 -1 882 350820045116642 -1 883 538188049832737 -1 884 352933104186798 -1 885 32702070182272 -1 886 207612841531339 -1 887 494525499235948 -1 888 496492687156993 -1 889 198194803692955 -1 890 346296332377373 -1 891 262683547726046 -1 892 114215146179068 -1 893 391025652867992 -1 894 457381359763374 -1 895 495294523267845 -1 896 370064289266247 -1 897 525647804951143 -1 898 417921917077653 -1 899 70205154719881 -1 900 75300571388150 -1 901 383968457733281 -1 902 36936603717203 -1 903 483758128961309 -1 904 213488487054617 -1 905 428273802502662 -1 906 172470571237879 -1 907 493428441460173 -1 908 354396066960641 -1 909 469733670299270 -1 910 244551992943885 -1 911 189453771536478 -1 912 380082572701575 -1 913 127415784473214 -1 914 544726225798472 -1 915 163578593469912 -1 916 248186083252409 -1 917 392978316066628 -1 918 50371420873713 -1 919 498069542536837 -1 920 46559844871587 -1 921 411315130051798 -1 922 182050256987188 -1 923 268857471902369 -1 924 419541357053932 -1 925 532645972364332 -1 926 529474086442517 -1 927 259315314806566 -1 928 286138486530569 -1 929 237423526461342 -1 930 146060098991418 -1 931 423552196421325 -1 932 162261857396422 -1 933 151991976873486 -1 934 390142026206798 -1 935 475734955180312 -1 936 343857811687007 -1 937 58220225020496 -1 938 442885375203754 -1 939 304614358520741 -1 940 227887462761061 -1 941 19553111121432 -1 942 358886142335764 -1 943 562208217949878 -1 944 111481744524167 -1 945 474190796537537 -1 946 126683851083923 -1 947 183313532721437 -1 948 115211376228948 -1 949 342554602141680 -1 950 426645829642572 -1 951 555780421582825 -1 952 514859548517356 -1 953 189271855029295 -1 954 346707768486592 -1 955 558052399568079 -1 956 219874902834059 -1 957 473480938507801 -1 958 454338609820787 -1 959 319249769666112 -1 960 303052433601658 -1 961 325039166590428 -1 962 562818133864851 -1 963 482053723661048 -1 964 179399831234719 -1 965 329916012393963 -1 966 257676226387094 -1 967 361664521921716 -1 968 77057460043747 -1 969 457081380044440 -1 970 542274122168414 -1 971 238853209318636 -1 972 104336868883223 -1 973 451698602541785 -1 974 28850069876211 -1 975 131693330534195 -1 976 82915911805295 -1 977 408960295261710 -1 978 350591285384904 -1 979 293382372461972 -1 980 347119868935760 -1 981 82442179201124 -1 982 166764888217027 -1 983 27350798714087 -1 984 209510836506591 -1 985 62224373947403 -1 986 229905573428880 -1 987 299768265381110 -1 988 340561249927292 -1 989 260740753682754 -1 990 170342826973294 -1 991 550966447674995 -1 992 190049459600603 -1 993 326439704928205 -1 994 216094235255818 -1 995 384253359784274 -1 996 92422146959059 -1 997 469034395588722 -1 998 482133676593321 -1 999 457361093096032 -1 1000 3203707061450 -1 1001 348562826815649 -1 1002 442708231591395 -1 1003 358545905328936 -1 1004 99820246607045 -1 1005 129108282342561 -1 1006 465596613363480 -1 1007 342411029511720 -1 1008 403204599555029 -1 1009 194852812275222 -1 1010 438971245966494 -1 1011 6305696619496 -1 1012 121458474565901 -1 1013 164896008252706 -1 1014 232986718206017 -1 1015 39049794858669 -1 1016 352772575929392 -1 1017 167526351878248 -1 1018 336508000922592 -1 1019 41369179630176 -1 1020 82710588995028 -1 1021 543582532324077 -1 1022 295770676523533 -1 1023 40447230032671 -1 1024 167743657437148 -1 1025 373717583254968 -1 1026 426016607839554 -1 1027 242393093428673 -1 1028 133244770929081 -1 1029 460570771885530 -1 1030 480973154594309 -1 1031 417652389769225 -1 1032 170548865161090 -1 1033 515624422731095 -1 1034 165972756145109 -1 1035 542306944723980 -1 1036 66902985421566 -1 1037 244933604567638 -1 1038 453185934572617 -1 1039 182289902909798 -1 1040 294691708180913 -1 1041 189929847393492 -1 1042 206309020304292 -1 1043 230978465797902 -1 1044 264548548339439 -1 1045 220282262234399 -1 1046 133399080217292 -1 1047 272452537777430 -1 1048 4820762140910 -1 1049 507907208611956 -1 1050 133076737025744 -1 1051 218791065638686 -1 1052 533774753154337 -1 1053 101817003442537 -1 1054 282198870041951 -1 1055 145656659062223 -1 1056 69252816875273 -1 1057 28909793047633 -1 1058 314124455110832 -1 1059 14334258788038 -1 1060 513118813436790 -1 1061 529447919980973 -1 1062 341304908857521 -1 1063 486611300055896 -1 1064 196824119405248 -1 1065 555629082452287 -1 1066 464993308257244 -1 1067 531409552622214 -1 1068 27470590937693 -1 1069 362531155269426 -1 1070 502364856738449 -1 1071 462420761664644 -1 1072 457041919062352 -1 1073 140165729043596 -1 1074 371944868714685 -1 1075 352070378435237 -1 1076 145660679286578 -1 1077 160593750191825 -1 1078 502158931065386 -1 1079 414780361674848 -1 1080 453240664106752 -1 1081 64325751719911 -1 1082 263265967873469 -1 1083 511739075005634 -1 1084 407125096237083 -1 1085 497748985473791 -1 1086 26921466064624 -1 1087 539811080294247 -1 1088 15497271904095 -1 1089 190905003271198 -1 1090 271200369318745 -1 1091 491721533463817 -1 1092 251174802123944 -1 1093 400124171455131 -1 1094 407898765662334 -1 1095 382760013740103 -1 1096 546174273703779 -1 1097 444987098364853 -1 1098 493462499886776 -1 1099 449510601316005 -1 1100 92163477433390 -1 1101 278437175693806 -1 1102 432407516652726 -1 1103 438450665618924 -1 1104 378591210228413 -1 1105 364881500179804 -1 1106 350085647159845 -1 1107 104424214353896 -1 1108 496639284671026 -1 1109 105938626619655 -1 1110 364161671705781 -1 1111 436768810639154 -1 1112 153044346111603 -1 1113 266344667971095 -1 1114 487682600405364 -1 1115 72969067373830 -1 1116 334095878455001 -1 1117 89396239654237 -1 1118 394121834856892 -1 1119 201420749304124 -1 1120 335036588174778 -1 1121 547572682663447 -1 1122 144458240733163 -1 1123 23110041690873 -1 1124 440419464063142 -1 1125 145002468276690 -1 1126 26533201500627 -1 1127 227473825662020 -1 1128 425453216140661 -1 1129 310339672665035 -1 1130 468648575466355 -1 1131 310453931209582 -1 1132 273547736929310 -1 1133 151808148652043 -1 1134 456053656519122 -1 1135 299200299179301 -1 1136 513365508986412 -1 1137 423970063453378 -1 1138 225045080240398 -1 1139 406908767419756 -1 1140 414282160871668 -1 1141 333502352809846 -1 1142 102716219357998 -1 1143 323307060472361 -1 1144 304481822172345 -1 1145 544956230620481 -1 1146 193303154717961 -1 1147 423512997655876 -1 1148 327941997098201 -1 1149 520695905669097 -1 1150 321784199673090 -1 1151 515707811809394 -1 1152 271230774697541 -1 1153 245629408160907 -1 1154 339400618689556 -1 1155 334625783317833 -1 1156 33991348836299 -1 1157 250379765038742 -1 1158 78356616365151 -1 1159 529420550903809 -1 1160 395719917896956 -1 1161 14520578979257 -1 1162 516523686975231 -1 1163 110712731396128 -1 1164 518729179665734 -1 1165 171243630032588 -1 1166 315839041190989 -1 1167 430447709209175 -1 1168 410823219695132 -1 1169 61915664107843 -1 1170 157596086240699 -1 1171 37075657643 -1 1172 47511153211467 -1 1173 136449937661427 -1 1174 483178260204664 -1 1175 339050852626676 -1 1176 56422227463451 -1 1177 30160770257295 -1 1178 217217099357482
diff --git a/2025/05/solution.zig b/2025/05/solution.zig
@@ -0,0 +1,82 @@
-1 1 const std = @import("std");
-1 2
-1 3 const Error = error{IndexError};
-1 4
-1 5 fn splitOnce(s: []u8, sep: u8) ![2][]u8 {
-1 6 const i = std.mem.indexOfScalar(u8, s, sep) orelse return Error.IndexError;
-1 7 return .{ s[0..i], s[i + 1 ..] };
-1 8 }
-1 9
-1 10 fn intersect(range1: [2]usize, range2: [2]usize) bool {
-1 11 return range1[1] >= range2[0] and range2[1] >= range1[0];
-1 12 }
-1 13
-1 14 fn insertRange(
-1 15 allocator: std.mem.Allocator,
-1 16 ranges: *std.array_list.Aligned([2]usize, null),
-1 17 range: [2]usize,
-1 18 ) !void {
-1 19 const i: usize = for (ranges.items, 0..) |r, j| {
-1 20 if (r[1] + 1 >= range[0]) {
-1 21 break j;
-1 22 }
-1 23 } else ranges.items.len;
-1 24 try ranges.insert(allocator, i, range);
-1 25
-1 26 while (i + 1 < ranges.items.len and intersect(range, ranges.items[i + 1])) {
-1 27 const start, const end = ranges.orderedRemove(i + 1);
-1 28 ranges.items[i] = .{
-1 29 @min(ranges.items[i][0], start),
-1 30 @max(ranges.items[i][1], end),
-1 31 };
-1 32 }
-1 33 }
-1 34
-1 35 pub fn main() !void {
-1 36 const allocator = std.heap.smp_allocator;
-1 37
-1 38 const path: [:0]const u8 = std.mem.span(std.os.argv[1]);
-1 39 var file = try std.fs.cwd().openFile(path, .{});
-1 40 defer file.close();
-1 41
-1 42 var buffer: [256]u8 = undefined;
-1 43 var reader = file.reader(&buffer);
-1 44
-1 45 var ranges = std.ArrayList([2]usize).empty;
-1 46 defer ranges.deinit(allocator);
-1 47
-1 48 while (reader.interface.takeDelimiterInclusive('\n')) |line| {
-1 49 if (line.len == 1) {
-1 50 break;
-1 51 }
-1 52
-1 53 const s1, const s2 = try splitOnce(line[0 .. line.len - 1], '-');
-1 54 const start = try std.fmt.parseInt(usize, s1, 10);
-1 55 const end = try std.fmt.parseInt(usize, s2, 10);
-1 56
-1 57 try insertRange(allocator, &ranges, .{ start, end + 1 });
-1 58 // std.debug.print("ranges: {any} {}\n", .{ranges, ranges.items.len});
-1 59 } else |err| return err;
-1 60
-1 61 var part1: usize = 0;
-1 62 while (reader.interface.takeDelimiterInclusive('\n')) |line| {
-1 63 const value = try std.fmt.parseInt(usize, line[0 .. line.len - 1], 10);
-1 64
-1 65 for (ranges.items) |range| {
-1 66 if (value >= range[0] and value < range[1]) {
-1 67 part1 += 1;
-1 68 break;
-1 69 }
-1 70 }
-1 71 } else |err| switch (err) {
-1 72 error.EndOfStream => {},
-1 73 else => |e| return e,
-1 74 }
-1 75 std.debug.print("part1: {}\n", .{part1});
-1 76
-1 77 var part2: usize = 0;
-1 78 for (ranges.items) |range| {
-1 79 part2 += range[1] - range[0];
-1 80 }
-1 81 std.debug.print("part2: {}\n", .{part2});
-1 82 }
diff --git a/2025/05/test.txt b/2025/05/test.txt
@@ -0,0 +1,11 @@ -1 1 3-5 -1 2 10-14 -1 3 16-20 -1 4 12-18 -1 5 -1 6 1 -1 7 5 -1 8 8 -1 9 11 -1 10 17 -1 11 32