aoc

My solutions for the Advent of Code
git clone https://git.tronto.net/aoc
Download | Log | Files | Refs | README

commit ab70c00d8da92222bdb1423c003b59bdbfd5008b
parent b6ae7104a0902d039a5a49cabafe4ba08d9c17c1
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Sat,  7 Dec 2024 07:51:09 +0100

Day 7 2024

Diffstat:
A2024/07/Makefile | 24++++++++++++++++++++++++
A2024/07/b.out | 0
A2024/07/day07a.cpp | 34++++++++++++++++++++++++++++++++++
A2024/07/day07b.cpp | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/07/input | 850+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 959 insertions(+), 0 deletions(-)

diff --git a/2024/07/Makefile b/2024/07/Makefile @@ -0,0 +1,24 @@ +CC=g++ -std=c++20 -g -Wall + +a: + ${CC} -o a.out day07a.cpp + +b: + ${CC} -o b.out day07b.cpp + +clean: + rm -f a b + +atest: a + ./a.out + +btest: b + ./b.out + +arun: a + ./a.out < input + +brun: b + ./b.out < input + +.PHONY: a b clean atest btest arun brun diff --git a/2024/07/b.out b/2024/07/b.out Binary files differ. diff --git a/2024/07/day07a.cpp b/2024/07/day07a.cpp @@ -0,0 +1,34 @@ +#include <algorithm> +#include <iostream> +#include <sstream> +#include <string> +#include <string_view> +#include <vector> +using namespace std; + +bool possible(long long x, vector<long long>& a, int i) { + if (i == 0) + return a[0] == x; + if (a[i] != 0 && x % a[i] == 0) + return possible(x/a[i], a, i-1) || possible(x-a[i], a, i-1); + return possible(x-a[i], a, i-1); +} + +int main() { + string line; + long long tot = 0; + while (getline(cin, line)) { + long long x, i; + vector<long long> a; + stringstream s(line); + s >> x; + char colon; + s >> colon; + while (s >> i) + a.push_back(i); + if (possible(x, a, a.size()-1)) + tot += x; + } + cout << tot << endl; + return 0; +} diff --git a/2024/07/day07b.cpp b/2024/07/day07b.cpp @@ -0,0 +1,51 @@ +#include <algorithm> +#include <iostream> +#include <sstream> +#include <string> +#include <string_view> +#include <vector> +using namespace std; + +long long uncat(long long x, long long y) { + if (y == 0) + return x % 10 == 0 ? x / 10 : -1; + while (y > 0) { + if (x % 10 != y % 10) + return -1; + x /= 10; + y /= 10; + } + return x; +} + +bool possible(long long x, vector<long long>& a, int i) { + if (i == 0) + return a[0] == x; + + bool p = possible(x-a[i], a, i-1); + if (a[i] != 0 && x % a[i] == 0) + p = p || possible(x/a[i], a, i-1); + auto u = uncat(x, a[i]); + if (u != -1) + p = p || possible(u, a, i-1); + return p; +} + +int main() { + string line; + long long tot = 0; + while (getline(cin, line)) { + long long x, i; + vector<long long> a; + stringstream s(line); + s >> x; + char colon; + s >> colon; + while (s >> i) + a.push_back(i); + if (possible(x, a, a.size()-1)) + tot += x; + } + cout << tot << endl; + return 0; +} diff --git a/2024/07/input b/2024/07/input @@ -0,0 +1,850 @@ +56083790: 93 7 89 932 67 58 5 +1607: 107 43 7 81 19 +751931197720: 6 8 533 3 9 6 933 2 60 2 +34649: 1 7 859 4 9 +3125401: 62 456 52 5 1 +7547: 94 283 461 9 3 +55789: 2 253 3 4 26 8 1 4 3 2 3 7 +67811: 1 587 15 6 700 2 47 6 1 +2768025357: 835 13 85 3 258 97 +349981: 9 62 3 121 775 +2163840: 6 3 6 7 2 49 5 20 8 7 2 6 +1965744438: 6 5 7 9 3 50 1 8 68 1 73 6 +3251726208: 47 37 2 9 5 8 502 8 9 9 8 +10541: 35 8 35 8 8 16 709 +3746916524: 643 8 582 475 49 +43479: 31 57 6 4 6 2 3 920 2 +10054100: 1 3 1 6 4 795 7 1 489 53 +1503936989: 75 192 2 2 7 6 989 1 +13622: 20 95 46 7 +426: 225 1 7 79 106 11 1 +491705744: 78 63 92 213 744 +18267919039745: 815 941 6 94 2 397 3 +52556232: 5 927 620 6 232 +35026084: 1 3 768 3 8 38 4 212 8 4 +212064: 59 4 18 1 6 740 12 4 +161622: 394 2 41 +1465970090: 4 4 803 902 6 334 +4032040411837: 700 8 9 42 8 51 471 9 8 +136275307195: 7 1 5 2 1 4 1 7 90 7 192 1 +340985: 3 77 738 2 2 25 +988: 7 82 64 9 2 4 58 4 2 528 +347569061: 8 2 1 7 543 2 6 3 7 7 91 1 +5369400: 30 564 89 889 300 +8072460: 3 6 7 8 23 1 3 6 2 6 5 891 +6972: 699 59 6 9 96 +81245257: 1 88 6 4 9 25 25 6 8 1 9 +12978: 53 620 43 5 9 2 +67165854: 6 5 86 2 2 7 1 7 8 530 2 7 +2571327330: 7 1 7 96 71 6 8 1 330 53 +311570632: 9 2 9 7 954 8 1 51 9 7 4 +2347380: 3 3 7 7 7 2 3 6 41 7 315 6 +28426430214: 65 3 5 97 4 64 3 9 6 361 +2387455090: 68 2 341 4 1 4 4 5 5 8 2 8 +1318681: 7 3 81 44 37 1 +44908357: 21 8 206 35 7 +1463904: 1 5 8 7 133 67 9 46 16 +472792526: 4 18 1 6 8 195 4 7 2 3 9 3 +3690175104: 6 566 7 88 7 63 4 +6192506: 8 6 1 4 1 3 6 63 6 7 2 794 +7079642: 704 2 9 367 39 +745: 2 4 8 1 2 595 56 6 31 7 +184367913208: 39 3 9 956 5 544 9 2 84 +650706364174: 803 3 41 3 571 27 4 +4372576: 6 396 4 4 46 +53324925: 532 2 54 995 25 +10178346240: 417 3 5 565 73 576 5 +187548984: 8 586 7 246 4 +434485350: 2 3 38 864 4 387 75 38 +3006: 83 7 89 9 16 +36971650474509: 210 953 158 46 9 381 +6780975: 4 9 3 4 952 3 255 1 8 7 +158481600: 8 14 8 964 200 +87761786: 29 3 761 2 5 8 9 +11341486: 126 3 3 1 486 +1767: 408 671 4 616 9 59 +49952093: 9 9 90 418 5 +36790: 8 4 3 711 79 +64253483776: 31 4 24 1 759 3 3 19 76 +795955600: 63 3 957 26 550 4 2 +15073717792: 2 7 4 3 5 7 4 8 9 80 7 93 +5318893601: 7 730 95 688 1 +697588861548: 1 1 3 3 1 8 8 481 6 15 4 5 +4483638995: 3 1 2 1 5 8 26 69 9 2 992 +475413888: 935 856 6 99 6 42 +5444838: 8 68 4 83 6 +5405636: 4 3 450 5 636 +48897: 58 69 886 3 8 4 +2033602: 6 593 7 97 5 +122678545: 629 3 361 65 78 +32636: 9 25 3 1 4 4 51 203 2 2 +104005481: 4 2 7 3 3 3 80 85 48 1 +473121071: 5 7 7 52 4 6 5 22 81 9 72 +3411084045: 75 2 46 727 680 45 +76570949: 7 9 8 7 7 5 8 8 639 68 7 1 +1496: 6 85 4 276 706 +254999: 4 8 8 8 3 9 5 67 5 1 2 61 +163899400513: 936 568 35 5 5 13 +572558: 69 6 20 140 68 +5542152: 77 762 72 66 +659770603626: 79 682 44 828 3 5 6 70 +4599935: 3 2 696 9 81 9 605 69 +5647581: 4 1 3 304 6 72 477 +586823676: 5 8 682 3 675 +268237487194: 3 2 8 7 7 55 2 487 1 9 1 +14193504059: 31 3 223 5 36 26 4 60 +220220409: 7 865 28 399 7 5 +339946418426: 582 1 8 73 1 5 95 247 6 +780000: 50 54 6 625 2 +5865: 3 583 5 +313565: 246 8 31 11 1 65 +2290783: 29 8 7 458 4 275 4 579 +1146: 8 92 91 3 2 +562750027: 89 309 63 86 941 6 24 +3278: 2 9 7 6 7 44 +459: 2 3 39 6 +1431120: 5 7 678 92 8 40 +26405616402: 56 783 2 2 82 2 51 2 2 9 +6040: 285 1 70 16 7 2 335 +1717462100: 793 922 87 27 146 1 +6188689550: 6 8 762 1 1 8 2 6 5 9 6 50 +66816: 77 4 821 2 313 +46132511: 6 911 37 528 5 10 +103140: 53 7 9 2 3 8 7 5 6 5 18 +3733695192: 289 4 80 18 9 9 9 519 1 +11310002592: 35 3 437 581 32 +1658410170064: 4 47 53 573 8 4 8 4 6 7 4 +1578423: 4 233 9 740 3 +12792914: 9 6 3 2 910 8 71 291 2 +67366818479: 6 72 36 130 8 18 479 +13292715: 92 9 349 46 3 +16587893610312: 57 6 6 40 348 441 749 +212642864: 1 92 8 7 2 3 642 1 864 +13015307040: 9 74 1 2 98 5 6 338 80 +37248: 425 17 9 678 8 +7673: 3 4 351 382 3 +19492545: 8 77 11 437 798 2 542 +5037692049: 145 2 4 13 537 59 81 +5227115460000: 25 952 75 727 76 53 +5853837: 4 191 3 383 4 +2895816393056: 76 666 517 39 930 5 9 +871074: 37 6 5 537 2 +2562: 4 8 5 34 7 7 +128155006: 133 83 1 13 593 +38655243: 8 6 79 9 1 1 33 1 88 7 7 +37815730: 73 58 1 95 65 94 +11088: 1 3 8 35 2 9 3 91 9 898 9 +15331936: 1 9 27 84 9 56 302 2 8 +616853160528: 770 34 595 45 6 2 44 +1641140: 31 3 76 63 620 +122969391: 495 18 82 138 75 +5804719203: 670 8 90 191 63 +11081356852: 3 36 86 672 903 85 96 +267393: 545 7 49 +134713: 220 800 43 284 14 +34333934: 589 23 9 2 7 4 8 1 6 1 7 +943506: 96 92 6 91 774 +30954670: 648 1 537 9 29 72 +109409456692: 123 95 8 5 94 5 669 2 +2130162694016: 7 7 251 54 55 29 38 16 +4508697507: 7 3 5 4 6 57 56 97 504 +192249: 2 3 42 510 7 17 36 1 8 9 +1489799920: 8 442 24 61 4 8 35 196 +7546848: 189 8 729 4 594 619 8 +76609349: 8 250 7 63 5 23 37 +100845316: 8 3 24 4 1 9 4 516 6 9 5 +311787: 82 38 82 79 23 +79369486: 10 4 7 7 6 8 7 29 789 6 5 +55707589: 278 5 347 7 311 4 2 2 +1046: 205 5 21 +166041240: 36 8 7 8 587 155 8 +4249331981: 1 94 6 7 9 832 2 903 +1055: 6 20 652 4 271 8 +196560: 5 169 9 6 923 7 8 4 912 +4990: 9 8 72 56 6 +341514: 54 2 7 6 9 +39823281: 1 4 6 1 3 630 1 3 2 97 7 5 +623232732: 56 662 217 5 8 78 9 3 2 +49660512: 429 142 90 814 1 +76504346: 91 84 8 55 907 442 +89795: 38 2 831 99 2 +2969500032: 4 71 6 6 1 1 8 6 804 79 2 +3663559: 78 7 431 27 32 +86027: 8 6 96 64 11 +347112: 83 978 9 93 36 +51546: 51 54 6 +386409137: 82 23 8 46 913 7 +1091904: 5 3 7 7 541 51 6 1 726 2 +5544149483: 581 797 6 4 8 149 483 +4085638: 8 3 2 75 4 5 6 6 7 6 4 81 +18112734072: 2 9 1 2 6 6 4 2 75 2 6 6 +5519052: 88 8 751 9 1 724 +985: 39 1 595 +374115327: 74 9 1 361 2 62 45 +1504216443: 47 3 131 9 1 3 9 4 38 6 3 +61345300: 4 2 854 9 5 9 2 8 412 19 +47163200: 8 27 8 5 6 5 3 4 428 70 4 +41158: 6 1 597 991 9 1 +525198449: 81 24 5 19 78 6 49 +88799836506: 6 856 1 2 1 4 1 335 103 +6801: 63 526 3 4 431 64 3 1 3 +221941: 4 43 14 604 6 877 +405758: 67 17 7 926 268 6 +9871839: 1 9 918 59 1 83 7 +226638: 3 87 31 1 1 7 4 4 58 +567421: 565 2 42 1 +15828100087: 64 8 7 2 6 1 92 249 1 8 7 +1460382: 5 5 4 6 7 8 9 1 6 4 4 489 +41128542090: 516 95 306 26 90 +9685596: 11 176 5 499 6 +834489: 6 9 7 8 3 2 2 58 659 830 +1197651060: 50 307 2 3 129 26 6 10 +50948514: 1 845 773 78 81 +1244: 9 2 5 7 490 5 91 8 1 2 8 +225050: 855 7 79 1 37 3 626 9 7 +521432: 145 62 58 6 6 +915: 35 4 1 52 5 +10019798: 917 84 9 727 71 +11416248: 14 9 9 7 6 226 7 7 8 +20086: 572 2 484 5 3 3 4 454 +40531: 90 7 5 76 57 4 +476020832: 7 4 85 10 2 832 +17460: 2 322 3 8 9 +3656576: 11 257 4 6 2 4 8 53 +384702322: 9 381 8 46 2 7 98 934 2 +15921343: 6 45 55 1 845 727 6 6 7 +948555: 5 9 39 4 166 448 7 2 1 9 +833286: 8 465 224 1 6 +83442633: 1 794 9 4 380 4 8 6 30 +4451643516: 464 8 7 399 3 518 +6035800: 43 1 14 84 3 4 919 7 +120650823: 3 31 566 92 7 +6128187052: 6 17 127 6 56 705 1 1 +56112: 370 2 8 1 74 9 677 +31903: 523 1 61 +175384445037: 9 1 989 1 57 7 126 40 +842522: 39 42 8 63 94 +3200608226: 98 36 126 92 72 +29954: 7 73 89 5 5 7 379 +1151217: 1 2 8 8 774 4 51 7 5 244 +1415015: 56 61 59 601 7 +1200971241617: 3 147 121 4 8 411 5 20 +87892: 134 7 5 602 +856: 76 2 1 39 97 4 +3078938848: 23 7 488 212 89 992 +278502: 9 9 8 11 7 3 44 7 34 5 57 +640001160: 50 400 8 29 40 +2191382: 561 458 7 61 22 3 35 +40361724: 2 8 278 36 635 1 9 1 +14599510: 3 176 44 507 41 3 5 25 +8256533040: 824 6 10 53 268 36 3 +31936421: 3 775 10 57 9 4 908 8 5 +123320992885: 5 9 3 52 4 4 9 3 7 8 409 8 +6787076: 5 7 9 711 27 5 7 5 6 7 1 9 +126143219768: 7 8 767 85 1 4 24 7 1 8 +1363526530761: 38 88 60 784 53 52 4 +665704: 944 6 984 315 296 +335678127: 8 9 111 8 21 3 562 5 5 2 +1427809: 8 54 7 8 59 5 475 +37247712: 38 3 38 635 9 +41454019283: 913 23 4 9 49 1 928 1 +361426: 279 70 1 3 5 79 26 +211934179944: 53 7 90 401 394 4 +10651627926: 21 6 3 9 3 1 52 36 9 54 1 +13014122: 89 8 8 752 812 2 4 6 26 +10533166: 105 15 1 69 57 54 66 +13334317392: 9 2 9 2 93 16 9 1 8 29 6 +35845: 3 5 6 2 2 6 2 80 4 8 4 5 +958806273: 4 3 6 3 9 801 3 4 886 7 3 +1662: 1 447 2 89 7 2 1 3 4 4 2 8 +1204062750: 5 7 4 173 8 1 2 1 1 984 6 +106347844047: 7 7 989 7 9 19 21 50 +5243574: 3 2 5 1 9 6 25 9 7 3 905 4 +160059844256: 9 5 81 1 771 77 2 208 +757925: 1 70 427 25 +2774739: 6 75 61 85 4 +3609299: 8 568 2 9 6 20 58 75 +4052517: 8 73 981 51 6 +9197: 5 2 4 800 1 246 98 53 +2286636: 24 56 3 873 103 6 30 +25872067585: 756 924 154 6 7 5 81 5 +7091153051: 59 8 743 536 15 11 +717443: 7 173 9 7 45 +881: 7 4 14 7 832 +32120: 222 93 37 490 93 +2117: 2 9 6 8 66 2 5 53 8 7 8 77 +12032: 656 611 636 4 6 590 +227589: 3 611 1 7 9 34 +2241278: 789 1 4 2 41 8 698 +2598: 1 4 6 22 2 50 743 1 7 1 3 +115879: 21 8 990 7 9 +132890316: 2 97 685 316 +118870567: 547 36 605 70 560 5 +316511216: 4 95 3 592 6 2 91 3 7 3 5 +124350: 4 33 1 942 6 +1102002: 4 55 2 849 11 +106464836: 442 1 651 8 37 +154287: 55 4 704 2 733 93 +930014: 24 6 54 7 4 9 5 +13895470: 6 556 5 989 4 5 +22814: 5 5 1 2 6 653 9 1 5 96 6 8 +48533638: 70 9 4 6 8 7 1 3 4 869 9 2 +2828279: 2 30 5 780 98 +57540784: 6 8 1 9 7 7 38 8 5 1 792 4 +1030124933: 2 5 26 7 205 2 8 5 1 941 +40932: 566 72 4 79 97 +29104: 1 3 800 438 8 +48444: 9 39 3 46 6 +2500: 46 8 5 7 610 +47135447869: 101 70 6 641 52 1 6 2 +5638598586: 687 633 9 82 3 606 +102994668: 66 2 3 921 931 84 +1161: 1 37 214 910 1 +1286879: 501 6 4 390 454 77 +44159213957: 20 3 791 9 7 28 344 4 5 +98886480: 988 51 34 699 781 +60: 40 4 4 9 3 +10327537: 999 6 38 293 535 +120310569617: 96 41 3 7 446 979 622 +34399817046: 5 508 43 67 704 6 +1785171384: 2 9 193 6 98 969 12 2 9 +9577827: 275 6 58 78 27 +1205840: 39 377 8 5 355 2 80 +209165274738: 13 7 43 97 957 355 4 +799259160: 8 6 93 5 1 9 6 5 4 1 9 890 +14737664: 655 225 34 122 7 +9289091880: 9 71 2 5 687 529 4 +41812: 5 836 9 3 1 +129: 8 2 2 88 20 1 3 +446228143: 638 9 9 1 8 13 97 9 7 +2216793238563: 46 291 3 7 5 978 92 6 3 +24533403481: 7 8 92 1 6 8 8 775 8 7 4 1 +1785761: 324 8 8 4 6 367 4 588 5 +1822613000: 58 99 94 125 988 +5110848: 4 934 9 152 +189320592: 5 4 74 4 36 1 2 4 26 8 3 +2200066: 817 8 48 334 4 973 33 +42089099: 5 5 42 855 35 95 4 +49232576: 886 934 83 631 41 63 +8676: 46 600 90 222 6 9 +111969042432: 1 5 8 6 8 4 4 74 4 962 8 6 +346282694: 6 70 4 3 2 29 914 85 4 +8791: 11 6 1 1 6 8 97 934 +38853: 76 511 3 6 8 +399056809: 7 953 5 58 82 67 7 3 9 +342807711: 3 44 5 5 6 2 434 2 9 4 15 +8524704: 48 914 2 7 94 954 96 +137340: 3 3 24 1 1 8 446 5 9 9 7 +211943838968: 1 4 33 3 941 812 6 1 3 4 +266880: 4 25 2 9 361 417 +75006409268: 4 391 73 79 160 927 1 +20926452: 3 1 674 82 44 52 +4192096657: 698 4 3 8 42 6 3 2 54 4 1 +8066916: 5 983 69 8 5 580 132 +548778868: 841 988 3 78 40 46 7 1 +1040559: 96 8 71 93 3 1 625 +946657001: 945 1 1 650 6 5 4 9 6 3 +714882712: 16 3 6 8 1 2 8 3 610 7 9 3 +45769946: 1 784 84 695 26 +114317969980: 940 5 7 547 6 74 23 80 +377186608725: 4 385 8 9 86 6 87 1 24 1 +26128128: 2 253 29 92 130 +101628: 8 3 5 8 2 674 3 +3416: 7 46 69 4 7 +306753346: 6 7 1 72 5 7 63 631 46 +50492: 1 6 8 2 2 7 12 9 1 1 +169260086: 560 62 5 975 86 +278853120: 81 36 784 5 608 +7504553: 8 54 6 8 624 553 +665167: 24 92 6 3 9 70 +387193982747: 767 7 387 9 1 655 50 +4203828: 896 469 2 5 901 3 659 +6113: 1 52 9 1 3 +15109568581: 5 472 87 64 495 86 +77199: 8 6 5 55 1 5 3 1 3 2 41 78 +27566775: 3 301 6 305 697 4 +672: 7 4 6 2 336 +12024890207700: 962 611 9 827 795 19 +107892318: 338 7 14 6 4 3 318 +221200150: 6 2 4 50 5 3 8 38 3 4 22 +4886: 16 1 25 3 13 +22961627: 376 1 8 58 8 1 6 8 2 7 +1004796: 39 90 8 8 37 527 7 5 7 9 +82139408541: 4 1 73 8 384 962 541 +799635: 26 4 1 984 25 35 +253278581: 531 6 72 9 47 36 236 9 +107449434: 35 8 164 78 3 +36617906: 697 63 7 263 89 8 827 +740: 6 2 29 669 34 +4818883: 2 516 6 852 12 57 787 +659740: 72 7 9 51 9 6 19 2 +47340305162: 6 77 82 94 743 3 719 +129681186: 7 7 402 7 1 9 1 86 +695324: 816 85 2 752 968 +520: 22 8 8 271 9 +31726191: 7 453 6 10 191 +44082432: 415 5 99 488 38 2 64 9 +48142: 339 71 2 1 4 1 +81505848266: 4 4 5 6 9 81 4 1 848 266 +5686475: 347 14 117 261 5 +2806: 380 7 58 9 79 +50022981: 67 4 96 72 13 3 6 816 9 +4931703: 2 7 9 7 6 9 38 7 20 1 6 9 +151831669: 75 202 6 238 87 661 5 +2152935: 6 93 4 2 3 3 677 5 2 2 71 +283581: 657 73 387 965 96 3 7 +1858: 72 65 6 6 2 31 682 994 +58139: 8 93 3 651 77 4 +41433: 7 491 83 94 5 +1798676: 899 338 2 +71287: 7 1 287 +593767487: 438 1 892 664 674 87 +9171504040: 4 573 10 593 268 +123963840: 6 22 8 78 301 5 +4934: 6 8 2 9 6 98 +17274262500: 330 5 517 30 75 9 +13643845742: 6 5 799 417 7 7 1 5 8 9 2 +82443: 426 13 384 78 65 +34698: 84 76 12 6 30 3 48 +1298100692: 1 511 3 4 7 3 333 8 9 2 1 +134467: 8 8 98 72 54 7 +21938: 36 7 3 86 8 +728106: 71 9 90 9 6 +1036239: 95 14 98 97 85 +12834: 245 14 3 406 96 4 39 +1869067: 8 514 11 85 2 280 41 +3093224: 67 8 3 76 28 6 5 +3907947905376: 814 2 311 627 4 96 6 +8145923: 37 64 5 8 86 +3760433: 9 5 207 84 4 8 4 5 3 2 5 8 +703560842: 1 8 2 533 5 6 1 1 20 4 4 3 +84702: 3 3 8 10 9 162 138 +1854627894: 9 85 949 55 4 89 6 63 +212488452: 6 5 2 968 5 927 292 52 +2639: 29 65 28 6 1 +8872: 6 4 8 7 7 9 7 362 25 8 1 7 +9183433: 7 1 5 527 2 6 5 5 4 2 3 3 +872676: 73 6 77 9 69 9 53 732 7 +89407: 34 95 5 69 7 45 +7326974: 6 7 6 28 1 1 7 1 8 69 4 +4335417: 6 69 2 414 8 17 9 +3118380: 311 83 1 80 +6997518451: 649 3 6 599 38 2 9 9 51 +692: 31 46 45 502 68 +223725648: 74 574 1 3 563 3 16 66 +1736100: 81 451 8 5 643 +86403: 26 65 943 7 83 +42101628673: 6 6 8 75 10 1 58 327 7 +4279409520: 92 1 3 29 7 1 8 5 6 4 722 +38262285: 4 9 2 207 55 283 1 2 +15694: 956 16 144 9 245 1 +290897817: 49 1 4 2 8 3 3 2 1 75 3 17 +36153083: 4 5 638 280 390 75 8 +17073311: 5 3 97 8 16 5 674 7 884 +2630402985990: 932 414 46 228 6 65 +8456: 2 324 461 4 8 7 93 516 +1866: 12 3 48 4 6 3 169 923 +936323046: 6 5 9 8 3 32 1 304 6 1 1 +83735645: 2 2 2 483 1 1 57 6 3 4 1 2 +19300233286826: 7 3 901 797 34 102 27 +435872007: 32 514 500 53 4 +633652800: 2 8 532 2 7 600 88 11 1 +8065: 6 36 36 34 255 +166518: 84 5 8 844 8 8 87 2 +305292: 3 54 4 4 7 43 8 6 3 412 +37620: 6 2 70 6 1 +2435900740: 2 7 95 8 443 92 1 91 70 +4843: 1 31 44 3 193 3 417 6 +2839188: 42 227 768 23 66 +2056845: 7 64 583 35 57 +6104: 253 90 461 7 473 3 +50592: 15 8 385 60 32 +962693911: 706 804 4 8 60 8 53 3 +962: 194 1 1 4 109 7 9 43 6 8 +103923456: 81 2 9 452 2 64 84 8 +21196: 43 4 58 600 2 44 +27635641600: 2 4 72 1 165 6 80 424 5 +244415360: 3 7 54 481 941 20 +61436253: 989 926 363 782 67 +26144169424: 245 5 7 7 50 24 76 62 2 +436321776: 671 8 69 589 2 +78781130100: 87 534 52 6 9 900 +14607: 5 184 8 2 9 28 8 2 59 3 9 +22411339: 223 71 8 9 3 948 61 9 +9569229: 956 89 3 25 4 +14623182843: 1 2 50 56 9 7 7 7 6 843 +2746: 701 46 3 7 308 190 +473279: 73 86 96 31 95 +83008: 690 118 713 787 88 +3568192: 4 53 246 9 4 74 64 98 8 +8507525834: 92 99 7 934 34 +1005791960: 2 5 4 368 6 3 1 1 4 949 4 +320458: 474 8 4 5 20 65 21 4 36 +1281302: 361 2 76 6 97 7 754 5 7 +88145: 5 7 6 7 3 2 983 87 4 1 8 2 +337502756: 699 482 196 43 57 55 +346898213: 34 6 6 3 76 2 93 1 5 4 7 +60369: 7 4 81 5 2 377 +5415: 284 7 70 3 5 +61466445: 373 744 570 55 95 +18402973160: 7 48 3 2 6 1 4 82 1 5 3 7 +2730744248: 5 903 9 32 514 +1551240: 190 3 36 8 40 +1024788284922: 4 1 55 67 81 4 53 461 2 +7342736119: 831 470 69 38 47 4 +3927: 5 7 3 24 25 +2400060: 93 5 9 53 255 +982227586: 98 22 19 8 585 +496314: 7 56 19 719 6 +4040257535: 6 9 668 1 3 4 7 4 224 6 1 +13483151031: 13 769 31 564 977 +46403: 8 54 401 37 66 +45397: 2 6 91 73 6 91 97 1 94 +4447366: 577 5 8 77 +2625719950: 872 78 259 82 469 +296: 4 7 189 2 94 +166198958330: 166 198 1 7 86 72 329 +36855: 46 2 57 9 39 1 +705672: 6 8 5 8 7 7 53 840 648 +493746168: 7 7 8 8 2 1 3 1 5 270 8 8 +686609000: 77 4 837 7 7 55 2 964 +602767: 8 1 5 955 5 121 780 5 7 +1022401: 497 696 857 +10384: 9 2 944 +21426: 65 2 50 596 26 15 3 8 7 +9385241: 155 60 9 8 88 16 7 5 7 5 +3775338000: 66 67 375 152 498 +217246229919: 3 61 38 69 7 6 29 922 +51802633975: 740 7 2 40 3 230 966 9 +4452: 5 813 380 7 +246173: 198 6 5 206 405 3 7 +562695027: 9 8 96 59 844 2 26 +1309857: 31 99 6 690 891 87 +2779776: 34 74 1 72 8 +7741497922: 90 5 9 20 8 7 797 3 1 71 +1671485818434: 43 6 993 4 5 757 4 51 +11213727676: 1 453 3 328 2 7 77 +6673501088: 2 73 8 3 3 357 6 4 7 1 4 4 +2787762: 33 809 8 79 3 759 +546764: 15 13 351 70 2 1 5 58 +136: 92 1 43 +93253: 9 3 25 3 +352868: 3 29 1 4 866 +32376156: 879 635 54 33 65 3 4 +871235: 120 12 66 35 +1831247: 128 51 4 1 247 +202176000: 8 1 1 7 6 6 9 768 5 3 5 26 +1722975: 3 572 51 646 5 +175468894: 2 74 9 6 4 57 94 +16488352: 8 5 277 62 21 3 87 8 6 8 +51385600385: 8 4 5 3 80 8 5 248 38 5 +15120984186: 65 3 6 5 1 5 1 833 66 7 +142: 7 1 6 6 122 +3014946: 4 2 799 39 7 1 1 2 96 66 +545580: 38 579 78 5 157 5 +4896: 6 810 25 5 9 +25438585: 93 7 5 7 57 59 3 5 7 2 6 7 +375110: 2 9 755 5 2 +7096: 2 4 49 1 9 7 3 63 2 24 8 2 +323424: 4 847 1 380 44 +857191: 1 500 93 6 1 3 477 2 20 +2811487360: 3 16 1 69 5 89 352 470 +9747: 6 27 32 22 5 9 +295167150085: 2 6 8 4 9 2 3 9 867 2 64 5 +22419298503: 921 387 62 1 629 575 +32775: 69 67 58 7 8 +594305316: 9 66 30 2 3 31 6 +212428348: 6 2 7 5 22 7 42 3 2 8 5 4 +6705301: 5 86 433 5 9 567 2 2 2 9 +29019: 9 31 8 4 33 70 3 +4951088: 5 2 2 9 98 34 3 1 2 420 8 +14933344994826: 18 635 212 369 7 54 9 +1880596497: 944 853 323 54 9 6 +32316: 924 209 63 27 24 +89674752: 17 1 6 8 131 93 6 2 4 +65803914: 871 310 692 96 3 81 +370805: 6 17 727 7 5 +1424: 559 847 10 8 +15075: 6 128 465 1 3 69 4 3 1 +9044785693: 45 210 4 55 7 5 694 +1622304: 8 16 5 8 3 7 8 3 366 8 9 4 +31356346: 52 603 346 +30633683680: 3 63 9 8 6 2 3 5 63 367 9 +1347: 2 96 7 190 372 482 +10184: 3 2 9 90 914 7 +401359728: 96 871 2 912 7 341 +10759876: 9 24 90 22 259 1 9 164 +8217375: 3 465 1 349 2 45 3 75 +4891840: 36 849 7 3 40 4 +8803089: 8 3 234 57 6 7 2 +3766682: 6 31 66 628 54 +320646: 87 6 6 6 609 2 9 2 5 939 +23741337: 65 485 1 3 753 +8910824: 54 165 74 8 76 +227251542: 2 171 3 74 1 345 36 6 +19602320: 3 764 52 294 51 69 +230076: 4 57 36 420 3 84 +5563429: 2 145 3 34 371 652 +74531683: 8 151 92 3 715 16 5 83 +152843330: 88 445 6 32 54 2 +3321822781: 4 1 1 450 4 568 3 9 1 2 1 +249089204069: 97 3 8 8 3 5 8 40 69 +4413375656844: 459 3 8 487 671 49 6 +1296667: 7 88 508 661 6 +17345405: 6 147 36 16 546 69 8 +465564: 655 6 303 3 9 53 9 5 3 4 +32376886: 9 6 4 598 74 42 7 7 5 4 6 +563892495: 86 96 702 2 6 495 +633298: 97 556 110 83 5 2 8 +50787046: 4 62 953 204 634 +87390: 68 18 67 72 3 +2403240558: 1 768 18 7 755 5 8 +12412077102: 50 3 6 82 783 9 5 1 7 6 +331930: 1 840 5 56 7 76 614 +936742758688: 93 674 275 8 688 +51431418948: 8 3 3 6 4 1 1 38 61 90 4 5 +3299009805: 95 1 6 5 9 56 5 523 5 7 9 +5752278998995: 575 227 899 89 93 +4019250: 728 12 9 6 46 +24575905: 3 7 5 628 167 2 8 7 6 3 7 +22631446711: 867 498 156 84 4 52 3 +4827: 1 6 70 820 713 3 +46502100: 34 4 46 270 5 +3280728: 40 97 1 2 1 5 4 9 92 8 +161993: 7 7 179 1 27 733 +7222928744: 87 343 1 2 3 81 1 3 242 +131281481: 5 146 1 370 238 6 80 +102633899: 34 3 62 760 629 7 +403551: 58 772 1 62 9 +4798692: 3 42 4 9 95 948 1 453 4 +4642: 56 1 16 5 60 22 +3925858: 392 5 85 5 3 +10078111: 33 76 2 97 84 9 55 +42102630: 830 2 9 5 1 5 9 3 399 6 5 +3444562: 352 5 5 89 9 832 9 73 9 +3813120: 414 28 38 993 8 +504489: 679 6 82 730 337 +58166874176: 3 7 4 1 147 5 6 7 409 8 8 +63099786651: 7 150 8 8 62 1 1 10 8 1 6 +115684: 3 674 3 1 5 4 9 5 7 6 8 8 +1118059280: 3 6 6 9 382 1 8 1 542 5 +218297: 916 7 6 34 82 3 1 +3152907481916: 381 25 4 331 81 9 16 +36711001901: 1 9 4 88 7 9 8 5 1 259 3 7 +3150538559: 6 99 6 5 5 3 1 1 3 742 9 +17007278: 58 9 1 6 90 343 3 278 +2796157: 76 4 45 4 864 6 247 +2480886: 530 65 9 8 475 5 6 +396507829: 37 24 4 610 782 9 +2694431: 6 4 60 5 2 9 898 30 431 +35304: 43 99 8 89 23 +27636008: 80 5 135 5 1 84 7 8 +25806: 3 8 3 49 298 69 +62775: 30 23 81 4 81 +21282: 599 4 17 65 36 1 288 2 +270043318363553: 458 88 9 7 289 67 5 5 2 +555: 2 2 16 1 201 +46368: 8 6 69 6 8 +436: 283 7 79 64 3 +1190: 29 70 2 3 199 790 +8299183120: 49 9 6 249 82 4 4 292 +38489155322: 3 30 347 4 7 74 2 6 3 4 1 +239345596803: 23 934 5 5 96 803 +85926648539: 8 70 1 1 5 135 11 39 +307820736: 8 3 6 7 8 65 652 9 9 4 2 6 +6377: 7 8 305 4 63 15 572 +1386630: 1 4 6 1 2 24 7 4 6 4 4 866 +16506803786: 3 611 1 9 7 9 1 7 6 6 1 84 +434593488: 543 23 4 1 7 9 7 9 5 2 88 +2398860: 3 2 3 6 1 6 423 2 5 7 9 9 +506942: 8 9 121 814 7 176 412 +1457: 412 17 698 326 4 +167420: 380 4 1 1 110 +906118132140: 924 5 5 8 9 242 4 2 90 +200736: 697 32 9 +126228: 21 25 533 218 6 +187376052: 57 623 316 872 692 +464: 4 27 27 406 +3459390027: 934 97 37 9 42 2 80 3 +597495: 1 892 586 3 4 574 43 5 +74239: 933 84 73 +85839: 85 8 13 26 +3660622: 6 6 598 23 799 +86013549308: 222 562 971 1 71 +36147: 36 1 50 1 +564169489795: 5 28 986 67 61 1 9 7 9 5 +485744688: 3 34 9 40 5 8 59 4 12 1 +2647095: 992 8 706 37 305 +435372: 33 7 18 4 12 7 6 853 5 +66136: 8 8 1 6 1 9 2 175 5 72 7 8 +509184085: 2 1 90 60 544 8 4 +332208: 41 518 8 8 1 +4450: 34 6 99 349 2 +1393: 7 546 50 782 8 +186344378: 2 77 32 344 376 +243349150: 88 4 66 803 319 +18989094942: 23 8 6 4 84 9 2 3 1 9 41 +199257670: 8 19 988 243 582 4 +451: 58 6 103 +76860461698: 1 2 1 7 3 2 63 5 4 61 698 +1772246412: 683 72 53 9 6 4 12 +51561: 211 61 18 2 2 5 +5166: 475 8 33 6 +39670700: 1 94 5 134 310 +633879523: 12 176 36 51 6 3 523 +50200413: 538 74 2 82 13 +456540907: 1 52 3 5 40 784 71 49 1 +22962349: 3 2 16 953 8 982 368 +42648902962: 5 4 8 66 7 345 295 5 7 +208380828656: 2 818 5 5 52 3 5 2 4 814 +155258217: 8 3 391 8 9 6 624 7 2 3 9 +2496037526: 21 8 1 16 52 27 7 98 26 +9212: 16 3 773 6 996 +601724: 3 19 283 1 5 5 7 7 2 1 4 1 +45260: 3 30 47 5 5 +372738: 81 46 9 4 8 +209: 23 80 59 47 +109860660: 2 7 437 1 27 165 4 +7165120475: 9 5 154 5 4 5 1 5 53 5 85 +107002: 49 6 6 324 8 74 +59885184773: 90 864 758 31 508 2 +808339: 197 43 7 2 541 6 11 74 +3372115896917: 8 4 5 7 4 5 9 28 57 91 7 +696960: 1 985 3 67 660 +888723: 9 88 34 3 33 +25780342: 883 965 22 7 634 +12446: 7 5 3 1 46 +1154575: 25 3 405 615 9 9 7 73 +130222: 3 73 18 331 799 +69984: 5 1 8 416 715 141 4 1 +125837559077: 4 631 91 6 2 5 9 9 4 987 +204368465: 748 609 293 3 514 9 +11360: 6 6 316 32 96 +21510322: 9 6 3 6 55 1 605 962 2 +2410331315: 574 247 6 195 17 +21453306: 48 17 66 5 93 52 5 81 +879180066715: 1 5 4 7 6 5 8 2 319 209 7 +601412430: 15 4 14 124 30 +495281224: 1 4 5 4 6 6 8 4 8 81 224 +2787: 8 56 8 4 735 4 +60651324: 2 9 787 74 69 29 2 8 6 +640: 38 3 479 41 6 +3905: 33 16 589 +77339: 5 7 55 15 73 5 2 45 644 +3541: 12 429 1 8 5 +1326529390: 7 3 8 95 7 24 8 43 2 8 3 4 +832692726: 29 739 40 1 7 28 +1236216182: 12 3 55 6 7 4 61 85 +20258: 5 112 36 98 1 +1743830998: 58 5 638 498 1 6 8 1 +165440626713: 5 4 44 188 6 2 67 15 +12797250091: 4 1 4 480 717 1 8 581 3 +4612461: 84 9 61 9 70 7 1 +7807: 776 4 7 +212503200009: 17 9 89 5 75 800 5 52 9 +370784953: 6 8 4 7 51 7 15 765 15 3 +44289: 57 1 763 31 4 +54450: 2 2 14 65 450 +649705: 888 3 1 5 58 366 1 133 +64594944: 7 9 688 652 9 +21238: 53 6 9 38 528 +16512: 2 2 2 42 192 +334461: 107 390 8 86 4 527 4 +91261614: 7 9 67 39 9 4 2 5 5 46 66 +3479: 749 391 2 3 53 +8253: 815 6 92 2 1 +37276513: 6 500 12 4 442 7 1 +2351539246: 691 381 457 48 46 +9169: 5 94 8 2 9 8 4 3 541 3 4 2 +34618020: 20 6 1 1 48 70 6 +15292375: 1 83 772 766 6 8 2 23 +260442003: 8 6 3 6 390 742 6 1 +1901238316552: 2 5 7 97 4 38 316 5 52 +5443993: 537 2 21 6 502 33 158 +120969415198: 13 93 694 151 97 +217273: 8 6 5 24 3 9 1 53 8 6 7 7 +257260: 4 3 225 8 95 +3690169721929: 85 42 689 153 627 +160: 57 8 91 4 1 +331255576: 3 1 1 7 7 39 3 9 3 5 5 576 +72784124: 4 813 170 11 524 +33892892: 5 6 9 1 575 5 7 5 5 47 2 9 +853934536: 847 6 93 45 38 1 +9875: 2 149 4 577 698 4 +30902400: 222 400 1 58 6 +13064065: 67 1 45 619 7 14 52 4 +184577: 87 85 3 3 4 7 +422231: 937 5 3 9 5 299 4 +11166176: 3 66 193 34 158 +56347728: 4 8 2 66 4 26 4 964 +201232813: 83 606 9 2 616 32 810 +123424318028: 1 3 247 1 38 3 1 802 6 +4366230: 7 7 5 9 44 9 66 5 +7477050016: 772 1 631 3 2 63 4 844 +152336266333: 9 995 817 5 5 381 4 6 7 +40981217760: 58 111 842 9 35 3 8 +5766837: 139 20 7 90 386 +38401564: 96 4 4 999 4 +11135115360: 8 8 97 40 6 6 22 4 405 2 +824315949: 433 85 38 5 1 30 919 +1535881: 6 715 9 6 367 2 4 8 8 1 +18409041: 6 68 48 940 82 +16645: 739 754 355 9 9 1 3 +6022000295: 849 4 2 4 1 886 4 7 1 48 +1014087438: 979 830 48 3 26 +6758002718: 719 246 32 199 6 926 +684756: 71 590 23 7 56 1 +430296: 422 5 3 2 96 +4447: 3 441 7 +1811188: 3 713 97 810 2 8 18 1 +71286: 7 1 23 5 6 +35709696: 466 4 4 4 3 3 5 6 88 9 8 +2377492897: 6 8 2 170 654 3 6 2 8 9 7 +6132692: 10 758 95 6 629 +3922831: 855 62 74 82 8 1 +12452476: 2 91 440 77 26 5 31 +54744: 2 7 124 6 +128744272081: 32 1 860 2 4 77 3 4 2 6 1 +75755758: 7 84 79 61 4 20 4 2 3 26 +52339056: 1 867 88 7 98 +276119: 3 235 4 21 5 39 +30529: 6 3 167 4 465 +1268940: 254 80 829 60 +129626: 259 7 14 526 5 9 69 8 +5237: 519 6 41 +804267: 34 53 446 162 414 +18755: 17 8 75 4 1 +44632: 633 4 6 7 +128204825622: 1 720 87 745 4 6 1 62 4 +9536: 949 4 3 3 1 +457490: 68 7 6 55 6 55 2 +1444800: 6 26 43 50 21 +339154325: 871 32 507 326 24 5 +882711: 4 8 870 678 32 +498865: 8 99 9 73 2 4 5 24 623 2 +22755: 75 8 1 3 16 7 1 75 3 3 41 +3051450: 30 51 391 59 +37279698: 109 9 38 978 61 659 +26348935: 9 239 8 7 48 300 4 631 +15429882533: 9 8 40 486 7 56 121 4 +7372452539: 2 737 97 98 995 40 +950: 50 314 3 575 8 +70550298: 100 495 2 2 702 +817053536515: 6 46 6 315 73 7 956 +2429481600: 515 4 702 70 24 +9538543: 476 2 9 9 543 +24624323109: 76 6 3 38 378 4 746 4 9 +27418374008: 486 3 6 138 2 56 8 8 +18305285: 2 9 7 2 3 7 3 4 6 336 8 5 +99122: 8 41 4 5 3 587 +1669: 5 5 7 101 6 5 8 +90208330146: 942 6 1 57 8 957 +1063: 15 990 7 54 +82119528: 304 1 453 3 5 28 9 +354415654: 7 872 984 709 59 +4578519: 3 6 79 3 4 6 4 8 3 89 3 +22163061663: 3 87 924 98 919 +122369940: 8 69 382 265 4 45 63 9 +132274: 4 3 41 81 27 6 2 4 24 7 4 +52771515: 95 1 9 7 1 301 7 90 3 5 +15156126976: 6 3 70 9 9 3 8 4 1 9 973 3