d07 - but even more inefficient
This commit is contained in:
		
							parent
							
								
									03fd24f930
								
							
						
					
					
						commit
						f6ebab690b
					
				
					 4 changed files with 958 additions and 2 deletions
				
			
		
							
								
								
									
										9
									
								
								res/07/example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								res/07/example
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
190: 10 19
 | 
			
		||||
3267: 81 40 27
 | 
			
		||||
83: 17 5
 | 
			
		||||
156: 15 6
 | 
			
		||||
7290: 6 8 6 15
 | 
			
		||||
161011: 16 10 13
 | 
			
		||||
192: 17 8 14
 | 
			
		||||
21037: 9 7 18 13
 | 
			
		||||
292: 11 6 16 20
 | 
			
		||||
							
								
								
									
										850
									
								
								res/07/input
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										850
									
								
								res/07/input
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,850 @@
 | 
			
		|||
5784641: 453 6 9 3 8 25 14 356 1
 | 
			
		||||
282716070: 373 831 714 455 2
 | 
			
		||||
38474572: 1 3 8 4 45 1 248 1 466 2
 | 
			
		||||
32688: 90 356 3 640 5
 | 
			
		||||
2462846: 245 64 23 41 48
 | 
			
		||||
10791: 2 4 4 896 39
 | 
			
		||||
2939907585850: 8 8 957 6 1 1 2 4 2 3 1 8
 | 
			
		||||
33727511: 2 7 82 457 9 1 1
 | 
			
		||||
1521190692: 106 2 779 287 63 1
 | 
			
		||||
1385751: 6 3 423 52 1
 | 
			
		||||
51483: 9 4 77 457 1 4 613 5 2
 | 
			
		||||
27186: 35 3 6 470 10 46
 | 
			
		||||
3349387: 7 96 6 68 816 7
 | 
			
		||||
7929: 257 6 2 9 3 6
 | 
			
		||||
7471696060: 7 2 2 25 1 694 8 2 3 7 5 7
 | 
			
		||||
12702339: 9 29 621 6 6 12 2 2 2 94
 | 
			
		||||
2478: 3 54 7
 | 
			
		||||
982901550: 240 8 7 42 24 1 38 4 2 7
 | 
			
		||||
343034318668: 46 1 6 4 365 5 3 7 9 8 7
 | 
			
		||||
17824: 47 357 1 44 4
 | 
			
		||||
65425: 5 3 601 2 6
 | 
			
		||||
21139380981: 26 557 796 8 981
 | 
			
		||||
56787982: 63 9 8 555 190 2 4 508
 | 
			
		||||
112442760: 83 20 70 80 967
 | 
			
		||||
8544598: 30 356 8 5 19 79
 | 
			
		||||
1137677262: 16 711 772 60
 | 
			
		||||
84699731: 15 3 435 30 48 68 9 9
 | 
			
		||||
4637611861: 1 8 6 8 4 92 9 72 559 60
 | 
			
		||||
177100: 7 843 1 6 5 61 9
 | 
			
		||||
4636065: 13 702 304 331 79
 | 
			
		||||
92731: 8 1 1 7 71 396 8 6 47
 | 
			
		||||
18969: 8 6 165 8 3 8 8 1 3 3 331
 | 
			
		||||
170977963187: 854 8 89 78 4 4 7 96 7 5
 | 
			
		||||
520875935: 572 9 60 75 935
 | 
			
		||||
52364: 603 86 2 299 205
 | 
			
		||||
147028: 5 576 571 343 997 59
 | 
			
		||||
180401705: 29 5 7 405 61
 | 
			
		||||
2157569655: 5 8 4 9 57 3 2 82 882 86
 | 
			
		||||
1432355: 5 9 3 2 6 92 2 8 1 3 1 6
 | 
			
		||||
79928148: 97 824 148 1
 | 
			
		||||
789912: 14 1 3 47 3 9 477 6 1
 | 
			
		||||
412247990: 3 326 240 3 7 90 4 55 7
 | 
			
		||||
1211526764: 362 2 8 306 871 332
 | 
			
		||||
256528696625: 476 6 667 898 25
 | 
			
		||||
8983769436: 6 3 970 2 7 2 9 6 2 4 9 36
 | 
			
		||||
53684598: 528 4 31 453 598
 | 
			
		||||
28851295: 709 4 7 83 7
 | 
			
		||||
2973265996: 8 805 6 40 242 5 577 2
 | 
			
		||||
102261: 430 99 633 85 82 7
 | 
			
		||||
358146210: 47 762 61 93 6 3 5
 | 
			
		||||
163785904: 81 3 9 59 72 51 16
 | 
			
		||||
152892331428: 9 807 69 7 97 6 5 3 4 19
 | 
			
		||||
4326853: 411 4 95 257 4
 | 
			
		||||
30451: 4 153 7 4 95 6 8 33 5 6
 | 
			
		||||
838677: 9 3 9 927 647 6 60 39
 | 
			
		||||
4815659060192: 6 4 6 22 459 371 9 1 9 5
 | 
			
		||||
242216: 9 1 8 2 5 8 7 6 8 4 5 296
 | 
			
		||||
1743546: 386 6 7 9 8 3 4 5 1 77 6 7
 | 
			
		||||
796272636656: 61 50 66 8 4 8 79 59 7
 | 
			
		||||
100245722: 9 38 3 87 9 2 73 7 2 2
 | 
			
		||||
500576: 75 77 724 2 77
 | 
			
		||||
58671000: 552 8 424 75 795
 | 
			
		||||
3373715: 673 5 8 715
 | 
			
		||||
2511667200: 6 272 1 7 12 8 8 6 5 64 7
 | 
			
		||||
11920095: 1 45 476 8 7 85 9 349
 | 
			
		||||
133012929: 6 246 9 22 836 871 27
 | 
			
		||||
4282: 60 10 7 65 17
 | 
			
		||||
25545780: 2 9 7 37 9 5 393 6 2 65
 | 
			
		||||
147816219: 5 1 4 3 3 8 28 8 3 123 96
 | 
			
		||||
7704: 3 77 55 5 2 4 24 8 3
 | 
			
		||||
93266: 92 251 9 972 25 9
 | 
			
		||||
730483380: 4 78 45 26 64 7 2 54 55
 | 
			
		||||
3890126751: 315 4 718 64 43
 | 
			
		||||
19664422: 983 218 2 1 58
 | 
			
		||||
430481: 430 4 61 6 14
 | 
			
		||||
86896: 62 14 82 9 5
 | 
			
		||||
303595570912: 8 429 8 9 6 5 68 3 2 691
 | 
			
		||||
10960: 214 846 1 4 349
 | 
			
		||||
744802: 6 98 351 71 9
 | 
			
		||||
1505021444: 904 45 1 208 8 7
 | 
			
		||||
4651846266: 547 2 76 85 62 204
 | 
			
		||||
9619948122: 862 279 1 7 40 4 8 5
 | 
			
		||||
4024050: 288 998 14 40 21 48 5
 | 
			
		||||
18820778295084: 491 684 7 7 371 934 6
 | 
			
		||||
20724: 4 106 1 4 55 6 2 7 17 6
 | 
			
		||||
14564: 42 31 153 4 7
 | 
			
		||||
4864: 1 599 8 64 8
 | 
			
		||||
20650396: 7 635 3 5 774 2 76
 | 
			
		||||
28333294948: 8 907 6 9 6 2 1 6 2 18 86
 | 
			
		||||
64392756: 715 458 9 95 58 3
 | 
			
		||||
2855347200: 3 4 95 576 600 81
 | 
			
		||||
27647: 35 1 6 8 64 3 81 188
 | 
			
		||||
52045208: 9 61 20 474 5 3
 | 
			
		||||
855328513131: 7 57 8 2 5 57 8 9 47 132
 | 
			
		||||
130608: 7 1 9 2 907
 | 
			
		||||
468100: 2 51 88 4 1 2 6 8 4 4 4 50
 | 
			
		||||
6121587545: 10 6 1 45 1 97 8 6 43 8 1
 | 
			
		||||
1084060: 7 163 95 2 4 5 90
 | 
			
		||||
5125818369: 1 5 36 2 581 837 1
 | 
			
		||||
4024: 5 1 9 8 9 21 476 236 5 1
 | 
			
		||||
1755156488: 9 9 8 5 5 16 265 8 8 7 6 8
 | 
			
		||||
30826096: 3 95 7 548 82
 | 
			
		||||
3125227: 517 28 819 61 39 6 7
 | 
			
		||||
257148204: 7 12 84 265 8 6 3 76
 | 
			
		||||
15519663297: 7 289 8 9 933 849 180
 | 
			
		||||
59409: 3 5 7 396 6
 | 
			
		||||
175033: 5 7 1 50 35
 | 
			
		||||
31515: 57 2 2 4 1 73 8 140 7 8 7
 | 
			
		||||
113204527393: 75 9 779 143 173 3
 | 
			
		||||
90750150562: 2 1 6 6 5 551 5 90 5 3 3 1
 | 
			
		||||
6958116471: 3 3 7 755 8 5 90 5 1 9 1 8
 | 
			
		||||
51810: 3 1 6 761 66
 | 
			
		||||
7356: 91 285 538 8 4 40
 | 
			
		||||
934173: 3 88 99 3 5 70 8
 | 
			
		||||
3930444: 36 407 713 34 46
 | 
			
		||||
247485243: 380 3 8 5 8 761 3 8 54 4
 | 
			
		||||
17901903476: 6 8 9 6 1 7 66 92 5 7 7 57
 | 
			
		||||
1649250: 2 6 8 9 5 805 8 31 1 6 4 5
 | 
			
		||||
1035506449: 8 25 43 2 27 9 4 9 6 68
 | 
			
		||||
392957: 6 57 6 2 6 9 69 8 80 404
 | 
			
		||||
2498599246845: 5 752 16 4 848 653 3
 | 
			
		||||
2684735088: 44 830 90 62 49 696
 | 
			
		||||
134307: 66 99 9 2 308
 | 
			
		||||
266482906: 266 4 718 110 39 67
 | 
			
		||||
80837: 80 74 8 1 7
 | 
			
		||||
26421665847: 329 8 49 8 3 7 5 30 267
 | 
			
		||||
6028342944006: 525 92 4 8 2 40 8 3 65 8
 | 
			
		||||
588788722: 1 536 51 788 699 23
 | 
			
		||||
126608220: 5 3 4 6 8 2 4 5 39 9 519 6
 | 
			
		||||
582563: 68 223 2 417 146
 | 
			
		||||
12909778704179: 3 5 86 6 2 9 783 1 6 1 80
 | 
			
		||||
1686: 6 6 2 66 762
 | 
			
		||||
760385775: 19 5 532 33 385 776
 | 
			
		||||
8310759: 241 75 6 831 71 76 7
 | 
			
		||||
2169421271: 309 9 173 24 7
 | 
			
		||||
5458131772: 74 737 43 317 68 4
 | 
			
		||||
210400146: 3 13 5 35 4 263 147
 | 
			
		||||
376750107: 5 754 1 42 2 3 65 8 63 5
 | 
			
		||||
222711: 6 5 9 3 713
 | 
			
		||||
17610257: 3 9 652 7 48 61 1 2 691
 | 
			
		||||
15380423: 612 69 8 487 4 36
 | 
			
		||||
26228617653: 71 2 74 26 2 2 1 8 78 69
 | 
			
		||||
39003044: 1 1 9 7 26 8 9 7 9 4 2 94
 | 
			
		||||
64737036: 602 8 1 444 6 20 2 834
 | 
			
		||||
32380: 9 6 5 8 916 2 4 552 9 9 7
 | 
			
		||||
25939875: 48 40 6 6 2 26 25 9 77
 | 
			
		||||
9132918454: 8 7 1 5 4 177 4 4 4 5 1 23
 | 
			
		||||
136746: 45 5 403 7 9 43 3
 | 
			
		||||
4523429: 45 23 193 66 170
 | 
			
		||||
246704417911: 6 47 84 9 2 553 5 79 11
 | 
			
		||||
4616120192579: 194 56 607 9 417 97 7
 | 
			
		||||
243959052: 3 386 4 462 19 6 876
 | 
			
		||||
155068528168: 2 8 417 45 3 1 3 7 332 6
 | 
			
		||||
917542640440: 936 268 4 5 4 25 3 6 49
 | 
			
		||||
7901701125557: 8 4 4 8 29 4 30 5 211 5 5
 | 
			
		||||
123921098340: 94 58 7 56 97 6 14 390
 | 
			
		||||
1937047: 3 360 514 5 44
 | 
			
		||||
63090128: 70 10 90 94 34
 | 
			
		||||
68544593: 7 9 68 16 596
 | 
			
		||||
6382320149: 787 940 810 7 607 1 9
 | 
			
		||||
162290960: 583 1 47 6 7 2 37 3 7 8
 | 
			
		||||
563798880: 775 931 1 3 4 306 90
 | 
			
		||||
2414825714: 753 690 89 82 4 9
 | 
			
		||||
22754489: 7 325 439 5 92
 | 
			
		||||
5019794638: 56 4 7 6 7 96 2 60 32 7 7
 | 
			
		||||
6716159: 6 80 11 6 212
 | 
			
		||||
11751450: 80 8 826 8 23 450
 | 
			
		||||
3400510971: 8 498 4 7 9 851 68
 | 
			
		||||
1006212456: 1 65 388 6 3 3 597 8 51
 | 
			
		||||
96331273: 552 69 63 5 505
 | 
			
		||||
2607114: 8 39 8 8 3 8 432 92 22
 | 
			
		||||
276612: 9 2 76 2 7 444
 | 
			
		||||
128601: 2 638 6 97 301
 | 
			
		||||
30225300: 7 30 6 389 7 50
 | 
			
		||||
2417458: 416 10 1 7 6 83
 | 
			
		||||
12243000079: 66 23 2 28 825 2 8 63
 | 
			
		||||
706931422: 6 9 8 7 5 2 835 6 2 375 5
 | 
			
		||||
1694741: 1 6 3 2 5 994 65 3 54 38
 | 
			
		||||
3594129013: 855 664 81 42 13
 | 
			
		||||
116193560: 967 75 52 82 2 7 22 6
 | 
			
		||||
6128336: 2 7 598 83 36
 | 
			
		||||
260422134: 702 85 99 36 37
 | 
			
		||||
941: 7 4 913
 | 
			
		||||
148365189: 740 999 826 95 2
 | 
			
		||||
58078863: 6 12 949 63 1
 | 
			
		||||
91497: 1 38 561 11 50 3
 | 
			
		||||
13650: 91 5 5 2 3
 | 
			
		||||
1666386016: 1 68 19 5 9 3 46 831
 | 
			
		||||
21465784: 6 235 38 7 77 2 6 3 2 1 1
 | 
			
		||||
2984: 6 39 1 3 7 7 3
 | 
			
		||||
3358876199: 6 799 4 33 6 4 7 56 341
 | 
			
		||||
90332539: 903 32 5 3 9
 | 
			
		||||
32912005124: 4 9 70 62 83 4 32 7 6 86
 | 
			
		||||
736412: 73 607 3 6 287 22
 | 
			
		||||
400288630350: 3 665 81 970 9 60 95 7
 | 
			
		||||
4839681005: 3 8 7 3 4 4 1 4 660 73 7 2
 | 
			
		||||
14283: 68 21 3
 | 
			
		||||
3797280: 6 2 8 2 1 4 50 948 7 4 8 3
 | 
			
		||||
11843198463194: 532 4 413 4 8 2 993 2 7
 | 
			
		||||
3636435: 45 64 6 62 82 2 3 2 2 3 5
 | 
			
		||||
260771705046: 8 85 2 2 6 279 3 88 4
 | 
			
		||||
12864257: 131 261 4 98 205 82
 | 
			
		||||
5760932097: 50 5 1 989 3 233 5 97 5
 | 
			
		||||
88185171: 8 4 5 249 1 271 88 867
 | 
			
		||||
73348154880: 5 8 9 7 377 7 2 96 1 940
 | 
			
		||||
3685292: 8 46 6 2 117 26 262
 | 
			
		||||
26740258270: 458 6 3 9 3 498 4 12 9
 | 
			
		||||
3650124: 65 93 231 3 22
 | 
			
		||||
28022585: 274 6 221 94 9 384
 | 
			
		||||
6500: 49 30 81 74 4
 | 
			
		||||
892568161009: 20 87 36 990 6 506 2
 | 
			
		||||
297234: 1 62 6 55 8 674
 | 
			
		||||
68315777106: 420 4 8 5 6 1 3 1 190 1 9
 | 
			
		||||
2684047230165: 4 73 390 6 5 3 97 1 59 9
 | 
			
		||||
14346426: 39 42 840 143 3
 | 
			
		||||
1593411: 80 4 947 91 1
 | 
			
		||||
171518188: 6 1 8 2 3 3 7 6 1 9 2 188
 | 
			
		||||
416035: 24 7 6 1 354 532 2 5 1 6
 | 
			
		||||
891032868: 3 27 70 5 839 7 708 3
 | 
			
		||||
2312644: 321 9 876 1 8 4
 | 
			
		||||
16128158: 5 22 50 98 4 26 15 9 1
 | 
			
		||||
184759: 18 436 2 2 393
 | 
			
		||||
1950175: 900 8 8 90 64 3 9 2 287
 | 
			
		||||
18009617: 50 36 954 7 73
 | 
			
		||||
2505593882: 1 7 3 434 16 6 566 90 2
 | 
			
		||||
179352343: 1 5 368 3 477 31 1 2 3
 | 
			
		||||
121424: 1 4 9 826 3
 | 
			
		||||
4874798895: 45 9 9 2 9 4 3 968 4 3 4 3
 | 
			
		||||
4384823899: 745 1 8 6 839 899 7 9 9
 | 
			
		||||
1562: 9 2 81 22 8
 | 
			
		||||
7794592701: 2 706 4 522 1 35 6 48
 | 
			
		||||
161736: 3 4 49 96 6 91 37
 | 
			
		||||
4526361945: 8 6 638 46 61 27 119
 | 
			
		||||
36972000: 2 87 5 6 7 7 6 17 5 79 5
 | 
			
		||||
474045: 21 34 47 4 80 561
 | 
			
		||||
85377: 440 289 7 29 4
 | 
			
		||||
1554: 9 9 9 5 1 934 8 1 8 153
 | 
			
		||||
581180544: 9 96 87 8 16 9 743 56
 | 
			
		||||
402063516: 645 6 6 236 3 6 3 5 16
 | 
			
		||||
1746737024: 59 1 32 98 4 19 92 32
 | 
			
		||||
1250905303968: 41 143 1 51 95 749 32
 | 
			
		||||
359333: 969 14 4 364 65
 | 
			
		||||
62881281: 3 999 37 36 605
 | 
			
		||||
1676481377: 71 799 22 687 2 43
 | 
			
		||||
12203: 5 7 928 257 3
 | 
			
		||||
288393: 8 3 12 396
 | 
			
		||||
1454: 5 31 921
 | 
			
		||||
17188466: 482 73 89 819 4
 | 
			
		||||
1394224: 4 40 1 240 2 3 4 244 4 4
 | 
			
		||||
8339935: 527 4 8 5 7 2 245 8 2 7 9
 | 
			
		||||
8025: 1 2 1 7 2 5 40 907 8 6 1 3
 | 
			
		||||
154980: 92 97 41 5 4
 | 
			
		||||
11899015: 51 89 4 881 625 890
 | 
			
		||||
536910629: 6 10 1 257 88 16
 | 
			
		||||
20295: 127 9 12 3 7 1 45
 | 
			
		||||
35857926575: 58 678 8 609 6 570 1 1
 | 
			
		||||
28672601: 97 9 4 705 7 37 5
 | 
			
		||||
19407423752: 9 20 955 550 195
 | 
			
		||||
65968: 13 52 162 808
 | 
			
		||||
136936: 20 55 988 5 9
 | 
			
		||||
803324363968: 2 5 78 4 6 94 3 63 968
 | 
			
		||||
338188739: 241 5 451 59 276 94 2
 | 
			
		||||
57362370: 8 752 71 9 5 6 97 65
 | 
			
		||||
5007744000: 1 3 31 6 3 50 48 414 8
 | 
			
		||||
919: 2 12 73 1 540 97
 | 
			
		||||
20916: 267 78 69 4 1 1 5 1 5 2 2
 | 
			
		||||
146958: 70 201 9 6 97 6
 | 
			
		||||
388876022: 55 956 69 9 694 5 55
 | 
			
		||||
2919240: 8 946 4 5 9 17
 | 
			
		||||
72977590: 87 77 1 4 2 127 5 542
 | 
			
		||||
144528056: 1 480 73 5 5 30 601 4 6
 | 
			
		||||
133220193: 5 721 195 3 941
 | 
			
		||||
1311: 33 9 2 311 916
 | 
			
		||||
39721959131: 4 361 36 6 11 604 3
 | 
			
		||||
5104056: 657 5 105 12 7 15 6
 | 
			
		||||
17267: 7 5 758 30 2 2
 | 
			
		||||
725769246650: 6 7 18 96 92 46 647
 | 
			
		||||
984: 95 77 91 35 686
 | 
			
		||||
702: 1 70 2
 | 
			
		||||
314314884: 75 49 137 844 3
 | 
			
		||||
26334229: 328 8 3 76 8 2 19 3 4 1
 | 
			
		||||
15965: 21 76 5
 | 
			
		||||
7596: 9 41 219 6 918 3
 | 
			
		||||
6713505: 284 60 34 7 82
 | 
			
		||||
1378: 1 1 2 1 6 411 873 1 61 9
 | 
			
		||||
1031253581052: 4 9 5 1 6 8 583 31 50 77
 | 
			
		||||
17034: 23 1 263 47 51 3
 | 
			
		||||
1006566072598: 1 2 32 20 303 725 9 7
 | 
			
		||||
27957506: 8 7 2 5 333 7 71 944 4
 | 
			
		||||
596557462: 842 23 308 846 65
 | 
			
		||||
7952055: 48 1 92 568 58
 | 
			
		||||
41703: 6 218 60 2 9 3 549 81
 | 
			
		||||
91380266406: 5 7 6 2 897 21 286
 | 
			
		||||
17903508480: 83 8 85 9 30 338 57 4 1
 | 
			
		||||
95103012: 9 8 1 1 5 1 660 4 5 94 7 9
 | 
			
		||||
1555709441: 9 6 5 2 4 7 717 7 213 42
 | 
			
		||||
22000960865: 26 546 574 27 68 1
 | 
			
		||||
662488: 1 79 2 80 3 4 5 784 3 5
 | 
			
		||||
125046: 81 21 60 1 71 15
 | 
			
		||||
5949995: 96 784 43 79 653 89
 | 
			
		||||
413733643: 98 66 9 8 4 7 546 4 42
 | 
			
		||||
688344: 58 6 640 1 8 87
 | 
			
		||||
9768: 5 185 9 43 1
 | 
			
		||||
51210649580: 26 3 96 7 2 1 3 6 8 41 97
 | 
			
		||||
1133964868: 80 5 69 43 283
 | 
			
		||||
6851974885: 6 1 851 974 88 5
 | 
			
		||||
39070448139: 7 7 9 990 7 2 5 4 4 8 1 39
 | 
			
		||||
1816128: 69 6 9 152 61 1 36
 | 
			
		||||
47043240: 9 3 2 65 4 7 7 773 3 6 5 1
 | 
			
		||||
123728: 861 762 5 76 1
 | 
			
		||||
1006015806: 8 358 6 7 7 618 1 1 9 2 9
 | 
			
		||||
3698807: 63 47 154 71 780 8 1
 | 
			
		||||
752502150: 86 447 9 725 3
 | 
			
		||||
16306497: 3 1 14 636 909 500 7
 | 
			
		||||
4618950753: 7 3 2 7 6 5 4 8 1 25 27 1
 | 
			
		||||
1392: 5 34 4 8
 | 
			
		||||
10601: 61 36 53 838 9
 | 
			
		||||
37232614438: 232 335 9 8 8 4 479 2
 | 
			
		||||
11708929709983: 4 6 8 9 968 2 4 4 283 7
 | 
			
		||||
1298: 162 8 2
 | 
			
		||||
48727: 9 64 2 7 8 2 3 6 6 9 41 5
 | 
			
		||||
620133: 63 36 174 6 6
 | 
			
		||||
4850: 7 3 587 4 319 30 1 9 5
 | 
			
		||||
90521945: 91 34 4 5 2 3 508 99 3 5
 | 
			
		||||
1407: 124 345 3
 | 
			
		||||
3296941648: 46 391 95 6 525 748
 | 
			
		||||
60180156: 947 6 8 8 9 25 50 1 3 2 6
 | 
			
		||||
2955: 3 31 5 49 1 5 365 15
 | 
			
		||||
3262588558: 756 63 7 55 7 16
 | 
			
		||||
7913016: 168 9 51 6 73 9 4 3
 | 
			
		||||
3112503582: 41 842 230 98 4 2 60
 | 
			
		||||
23211: 6 784 747 3 1 621
 | 
			
		||||
3861637: 60 643 8 4 24 32 8
 | 
			
		||||
422134: 5 29 345 559 75 6 6
 | 
			
		||||
2267001900: 8 22 1 1 9 17 7 95 50 6 3
 | 
			
		||||
3406916861813: 7 5 309 609 9 7 5 363 5
 | 
			
		||||
5259: 7 2 371 5 60
 | 
			
		||||
2787440614: 34 83 55 2 720 28 7 7 8
 | 
			
		||||
1488991956: 75 5 45 270 73 7
 | 
			
		||||
133197472: 5 1 609 7 319 5 6 673 4
 | 
			
		||||
7408194524: 378 39 67 45 21 5 1 75
 | 
			
		||||
1734789628: 413 21 918 2 8 593 1 5
 | 
			
		||||
3309713: 86 962 4 18 25 4
 | 
			
		||||
254: 4 41 39 1 51
 | 
			
		||||
444823: 2 1 620 714
 | 
			
		||||
2026944: 9 9 92 4 68
 | 
			
		||||
497854: 82 9 30 22 7 2
 | 
			
		||||
18240073265866: 76 120 20 7 3 2 65 868
 | 
			
		||||
15912762: 34 468 7 58 4
 | 
			
		||||
219726352: 5 493 4 544 6 909
 | 
			
		||||
172975: 81 53 259 18 53 52 37
 | 
			
		||||
48050413: 5 587 886 329 81
 | 
			
		||||
145091897: 20 72 61 7 91 1 31 68
 | 
			
		||||
156039: 15 204 332 8 671
 | 
			
		||||
153162: 1 6 238 17 91 9
 | 
			
		||||
8840245: 23 48 6 4 3 2 4 5
 | 
			
		||||
13: 2 1 2 4
 | 
			
		||||
32448: 617 35 24 2 8 3
 | 
			
		||||
146922: 6 8 9 180 7 5 3 40 1 1 8 5
 | 
			
		||||
118333: 875 624 5 117 73
 | 
			
		||||
1902156: 58 6 34 26 687 2 9 586
 | 
			
		||||
4890847: 465 3 237 843 7
 | 
			
		||||
14233611: 4 684 52 55 2 12 697
 | 
			
		||||
8368647847: 6 5 4 7 20 5 3 6 5 2 567 4
 | 
			
		||||
606987974: 606 978 8 1 971
 | 
			
		||||
3356506: 3 1 66 51 7 8 16 39 9 8
 | 
			
		||||
66799: 102 9 42 37 67
 | 
			
		||||
89280: 3 51 761 16 96
 | 
			
		||||
1078985844: 52 12 492 3 69
 | 
			
		||||
72: 3 62 4
 | 
			
		||||
2728000: 527 15 69 5 88 53 9 5
 | 
			
		||||
21078147: 76 1 7 4 273 22 2 7 1 76
 | 
			
		||||
30111675: 699 5 68 4 149 627
 | 
			
		||||
15855840: 9 679 49 858 3
 | 
			
		||||
639545: 99 5 19 68 4
 | 
			
		||||
60738097535: 86 757 8 3 4 3 7 66 9 3 7
 | 
			
		||||
1763: 10 8 6 73 8
 | 
			
		||||
13364971123: 6 13 21 2 42 7 3 581 8 7
 | 
			
		||||
3138: 420 9 3 614 3
 | 
			
		||||
300073008: 34 571 644 426 24
 | 
			
		||||
176169941: 6 2 6 32 2 3 5 722 1 941
 | 
			
		||||
557618827780: 6 1 8 8 1 501 83 25 40 7
 | 
			
		||||
1168: 2 7 6 97 9
 | 
			
		||||
13159351576: 55 7 6 5 93 257 75 9 4
 | 
			
		||||
41148: 284 4 7 9 4
 | 
			
		||||
151387236484: 4 9 3 27 87 72 36 4 8 2 1
 | 
			
		||||
32462: 7 21 291 99 879 2
 | 
			
		||||
15890800860: 64 5 8 55 7 3 57 198
 | 
			
		||||
444678163: 1 8 40 7 1 9 8 882 18 4 4
 | 
			
		||||
763538: 9 29 3 40 37 134 6
 | 
			
		||||
1682947870: 2 4 6 57 3 6 4 6 69 9 67
 | 
			
		||||
641748592: 7 6 2 40 5 7 982 4 8 859
 | 
			
		||||
6115161150: 27 237 8 5 505 378
 | 
			
		||||
88303: 6 9 5 1 4 4 2 35 439 61 3
 | 
			
		||||
4106592: 46 66 456 98 2 6 1 1
 | 
			
		||||
9496610: 331 60 184 6 22 2
 | 
			
		||||
220227770: 507 14 22 786 516
 | 
			
		||||
80598: 93 1 857 37
 | 
			
		||||
33950931: 5 1 59 940 5 664 7 26
 | 
			
		||||
680394657: 8 7 963 773 9 41 7 8 3
 | 
			
		||||
14448081: 240 8 5 12 81
 | 
			
		||||
5439413: 94 52 541 9 7 52 661
 | 
			
		||||
18894: 465 3 2 41 4
 | 
			
		||||
25035: 352 7 7 32 5
 | 
			
		||||
46920376: 93 2 8 20 8 379 4 13 3 6
 | 
			
		||||
12174021: 81 16 5 3 14 7
 | 
			
		||||
193176858: 6 574 64 38 291
 | 
			
		||||
50818868852: 8 500 1 8 32 1 53 885 2
 | 
			
		||||
1029558: 5 43 798 6 138
 | 
			
		||||
1263919068: 4 2 13 3 190 65 3
 | 
			
		||||
22542300: 42 3 7 91 426 1 262 1 9
 | 
			
		||||
529208: 504 75 7 2 8
 | 
			
		||||
394939541: 986 1 3 8 5 5 190 44
 | 
			
		||||
118560716: 2 6 1 1 12 760 702 14
 | 
			
		||||
494656502: 473 21 5 7 2 5 1 6 4 90 9
 | 
			
		||||
1209904664: 9 9 2 6 4 9 9 90 40 6 6 2
 | 
			
		||||
2524565644: 859 364 470 72 2 61 2
 | 
			
		||||
37708400: 75 416 6 6 5 61 2 7
 | 
			
		||||
1972634: 583 4 8 1 15 9 28 62
 | 
			
		||||
1662777: 22 58 42 13 8 97
 | 
			
		||||
1240954: 9 3 804 38 9 2 20 274
 | 
			
		||||
70027685: 1 5 92 4 4 752 1 7 6 96 7
 | 
			
		||||
834198: 1 90 435 734 3 93 260
 | 
			
		||||
10239: 7 456 220 3 3
 | 
			
		||||
117053149: 390 17 6 2 4 3 1 7 272
 | 
			
		||||
233635960846: 5 304 9 7 23 7 127 5 9 3
 | 
			
		||||
1711589: 2 6 961 827 953
 | 
			
		||||
1861359048: 63 388 3 5 6 32 27 4 47
 | 
			
		||||
3219559200: 7 5 7 4 88 7 50 3 649 6 8
 | 
			
		||||
7243188852: 7 391 98 88 52
 | 
			
		||||
144: 4 9 3 7 33
 | 
			
		||||
4526841598: 2 5 2 3 5 95 67 690 8 8
 | 
			
		||||
74213763015: 7 96 5 20 988 905 463
 | 
			
		||||
59498024: 5 2 7 2 5 34 9 7 4 6 2 479
 | 
			
		||||
144196: 177 5 626 15 8 94
 | 
			
		||||
2268224: 83 122 8 4 7
 | 
			
		||||
646272: 2 2 2 772 88 9
 | 
			
		||||
52343760: 6 6 5 2 804 1 1 5 6 5 42
 | 
			
		||||
24746512048: 6 6 7 3 5 1 6 44 8 95 2 49
 | 
			
		||||
512635277: 3 1 430 6 7 219 1 4 19 3
 | 
			
		||||
66141691618: 66 14 16 215 701 19
 | 
			
		||||
1126449111936: 9 4 1 5 202 4 9 1 624 9 6
 | 
			
		||||
17960: 613 8 7 4 8 564
 | 
			
		||||
144614: 9 27 6 26 1
 | 
			
		||||
697288930: 6 68 29 2 86 9 48 1 1 65
 | 
			
		||||
495824: 81 9 6 1 3 31 6 125 435
 | 
			
		||||
35174520: 3 408 1 798 318 9 4
 | 
			
		||||
168008558175: 554 9 54 473 4 45 156
 | 
			
		||||
5163978: 514 21 218 25 50
 | 
			
		||||
802896148283: 394 737 79 27 951 35
 | 
			
		||||
268382241: 1 4 1 7 732 9 6 2 6 747 3
 | 
			
		||||
14643: 5 2 24 14 6 421 71 8 31
 | 
			
		||||
635: 156 4 3 472
 | 
			
		||||
166346046: 4 3 4 2 3 9 2 537 61 5 8 3
 | 
			
		||||
72214029171: 89 15 9 2 7 19 1 9 17 1
 | 
			
		||||
81471352: 978 8 2 1 373 617 824
 | 
			
		||||
1025: 71 25 322 2 605
 | 
			
		||||
29748967: 339 5 1 876 7
 | 
			
		||||
2900803335: 62 6 812 89 4 6 4 9 84 5
 | 
			
		||||
4306295616987: 8 6 518 973 178 987
 | 
			
		||||
29335392: 293 34 257 368 769
 | 
			
		||||
3421513440573: 5 488 5 43 9 452 8 5 7 3
 | 
			
		||||
774471671: 91 9 8 842 68
 | 
			
		||||
73168387: 3 572 492 1 88 3 18 7
 | 
			
		||||
1198169343212: 465 998 57 76 7 596
 | 
			
		||||
4939897869: 42 7 3 98 97 762 99 9
 | 
			
		||||
9452: 6 754 5 7 6 6 67 2 5 942
 | 
			
		||||
1638952: 534 71 977 259 4
 | 
			
		||||
2645747748275: 999 7 2 6 28 7 3 21 274
 | 
			
		||||
18770866137: 59 7 8 198 4 3 3 9 14 6 6
 | 
			
		||||
7267342050: 355 2 485 41 2 4 5 9 2
 | 
			
		||||
263561802460: 549 48 4 180 24 60
 | 
			
		||||
36812735141: 368 1 272 876 638 4
 | 
			
		||||
15126615: 1 8 6 10 694 447 3 5 9
 | 
			
		||||
2730: 4 5 1 6 5
 | 
			
		||||
49859160395: 2 9 5 5 141 8 5 744 3 95
 | 
			
		||||
166796: 667 27 518 6 9
 | 
			
		||||
76128020: 9 518 96 4 40 20
 | 
			
		||||
2774187786781: 6 9 350 4 18 7 786 78 1
 | 
			
		||||
722212: 1 91 629 895 4 310
 | 
			
		||||
825666: 43 2 96 30 34
 | 
			
		||||
36528210869942: 437 83 9 582 2 927 2
 | 
			
		||||
12862941518: 1 6 39 53 889 512 6
 | 
			
		||||
168801: 8 3 3 1 2 7 2 1 655 99 1 5
 | 
			
		||||
283936782: 464 9 6 4 4 92 64 9 5 1
 | 
			
		||||
82825347069: 34 14 401 605 69
 | 
			
		||||
342400: 9 4 5 301 402
 | 
			
		||||
2116600955: 5 1 859 313 476 5 62 6
 | 
			
		||||
5948133: 5 9 1 4 81 3 3
 | 
			
		||||
14610957982: 3 7 4 5 6 4 8 9 868 7 79
 | 
			
		||||
1337280: 1 1 28 796 8 7
 | 
			
		||||
53963502: 6 6 1 6 8 6 52 1 9 4 50 2
 | 
			
		||||
96016690857: 178 7 9 7 550 6 1 2 7 1
 | 
			
		||||
90952: 14 94 2 706 37 33 92 3
 | 
			
		||||
21295931: 5 2 5 272 3 89 1 2 6 4 3 9
 | 
			
		||||
828611: 655 173 60 8 6
 | 
			
		||||
47762044: 90 88 7 237 748
 | 
			
		||||
1826: 7 26 3 4
 | 
			
		||||
75623309: 521 83 7 161 9
 | 
			
		||||
3768141758: 1 57 80 45 3 6 66 1 9 7
 | 
			
		||||
557580344: 7 2 2 78 9 110 31 6 34 4
 | 
			
		||||
302571801: 34 3 820 25 8 980 3
 | 
			
		||||
3812160: 62 52 836 8 5
 | 
			
		||||
6195028235: 86 6 19 70 28 235
 | 
			
		||||
324096: 25 89 2 22 3 94 48 8
 | 
			
		||||
588504: 45 95 658 737 378
 | 
			
		||||
11530489: 15 3 30 9 7 348 3 437 9
 | 
			
		||||
6771567: 2 7 2 8 769 43 69
 | 
			
		||||
33083455: 441 1 5 3 1 50 1 904 4
 | 
			
		||||
962313572573: 8 806 75 7 1 1 223 7 73
 | 
			
		||||
316247: 5 929 68 321 66
 | 
			
		||||
42210: 4 8 4 1 241 9 83 1 6 90 1
 | 
			
		||||
2127: 7 9 17 2 506
 | 
			
		||||
8550172: 25 68 2 90 169
 | 
			
		||||
985501446: 44 8 66 707 60 3
 | 
			
		||||
15694047: 73 83 87 6 66 7 325 55
 | 
			
		||||
6685509294: 2 4 2 5 9 6 82 4 9 56 5 6
 | 
			
		||||
548210: 14 80 8 835 74 43
 | 
			
		||||
2362469697: 8 3 34 972 545 7 927
 | 
			
		||||
1117: 6 7 299 8 549 219
 | 
			
		||||
136968682196: 214 25 87 51 571 99
 | 
			
		||||
1367384: 7 58 609 29 9 4
 | 
			
		||||
144383217658: 7 5 15 93 5 2 2 8 69 6 6 5
 | 
			
		||||
87828: 21 7 784 5 4
 | 
			
		||||
1996: 6 2 3 3 2 2 5 9 4 581 19
 | 
			
		||||
3013076430172: 5 871 798 867 164 5
 | 
			
		||||
766: 91 5 1 3 308
 | 
			
		||||
17402485230: 5 456 59 561 2 65 991
 | 
			
		||||
1140985: 2 61 3 72 8 1 10 5 6 5 5
 | 
			
		||||
1971039: 612 6 797 4 55 81 719
 | 
			
		||||
426568000: 1 888 1 3 5 9 8 3 5 710 5
 | 
			
		||||
5800533072: 94 502 99 5 62
 | 
			
		||||
395248184: 7 8 436 28 7 187
 | 
			
		||||
197913878: 4 8 6 4 3 76 6 8 38 1 50 9
 | 
			
		||||
90137534: 90 13 7 5 34
 | 
			
		||||
2054304: 9 355 15 981 6 42
 | 
			
		||||
1130831: 196 9 82 32 57 7
 | 
			
		||||
98641729: 97 588 40 36 17 32
 | 
			
		||||
328169322000: 5 558 265 1 564 60 65
 | 
			
		||||
19047500: 188 37 12 1 865 3 3 1 9
 | 
			
		||||
28844820: 639 506 3 856 631 45
 | 
			
		||||
316594740: 5 67 6 5 54 32 231 58
 | 
			
		||||
18886291: 90 5 975 15 7 840 88 6
 | 
			
		||||
536906112: 1 3 7 7 19 41 8 248 74 8
 | 
			
		||||
12046: 30 1 6 7 944 9 7 6 2 2 6
 | 
			
		||||
7927891: 709 2 835 88 8
 | 
			
		||||
271560: 545 4 1 9 124
 | 
			
		||||
63158: 854 44 4 7 5 9 2 1
 | 
			
		||||
3742146478239: 84 86 221 518 239
 | 
			
		||||
36246067: 3 624 606 6
 | 
			
		||||
61996642560215: 538 165 30 6 3 64 216
 | 
			
		||||
2009: 9 171 6 101 7
 | 
			
		||||
32757: 814 2 4 62 28 99
 | 
			
		||||
18268: 9 9 101 4 81 2
 | 
			
		||||
1284128: 81 79 516 8
 | 
			
		||||
20192999: 202 6 595 20 4 7 9 510
 | 
			
		||||
205360: 9 4 45 2 5 147
 | 
			
		||||
494508: 7 7 18 3 348
 | 
			
		||||
1122510312: 5 16 6 6 1 5 7 9 8 3 72 63
 | 
			
		||||
83923: 734 714 98 9 6 439
 | 
			
		||||
747144: 8 12 92 2 102
 | 
			
		||||
22233: 24 9 4 8 65
 | 
			
		||||
1349560473: 9 4 7 475 3 4 73 8 473
 | 
			
		||||
11548024: 6 4 7 5 1 9 4 7 8 346 1 92
 | 
			
		||||
358717: 20 632 1 633 9 3 320
 | 
			
		||||
73225780: 7 32 2 578 3
 | 
			
		||||
16184864771: 9 8 2 61 97 19 837
 | 
			
		||||
4946942: 13 5 99 77 187 14 9 4 2
 | 
			
		||||
642483775: 8 8 1 4 7 1 37 3 777
 | 
			
		||||
2990: 2 3 9 8 5
 | 
			
		||||
12143949: 6 529 3 62 9
 | 
			
		||||
8005100400: 897 9 90 447 3 90 99
 | 
			
		||||
918093989: 616 138 12 3 3 75 91
 | 
			
		||||
554049: 55 3 197 850
 | 
			
		||||
102466646528127: 6 4 953 2 103 84 812 5
 | 
			
		||||
7455266: 7 38 9 30 71 46
 | 
			
		||||
456895108215: 37 61 85 1 3 897 59 45
 | 
			
		||||
8156598: 3 31 7 54 87
 | 
			
		||||
174601152: 9 726 2 561 16
 | 
			
		||||
2531340: 5 298 723 6 420
 | 
			
		||||
16351143: 48 88 553 6 7
 | 
			
		||||
3325117659: 646 75 2 63 557 73 1
 | 
			
		||||
6391994763: 4 64 759 5 1 363
 | 
			
		||||
26420184: 5 4 174 7 2 19 76 3 89
 | 
			
		||||
1427343119: 190 9 418 70 72 9 51
 | 
			
		||||
1225692759: 97 2 4 65 243 7 51 5
 | 
			
		||||
60515: 12 9 555 2 91
 | 
			
		||||
79068726: 8 17 192 9 61 418 6 3 6
 | 
			
		||||
6856699229: 1 6 7 9 57 9 368 4 8 29
 | 
			
		||||
6849920811: 8 3 457 1 6 5 8 7 80 3 7
 | 
			
		||||
78761100: 7 98 750 4 7 10 1
 | 
			
		||||
2010038: 911 710 2 62 1
 | 
			
		||||
22767489360: 1 722 8 1 4 308 29 7 9 7
 | 
			
		||||
85437: 8 47 52 688
 | 
			
		||||
242850: 59 4 7 1 3 1 4 468 16 9 1
 | 
			
		||||
22418208: 2 461 566 62 81 3
 | 
			
		||||
335174: 1 6 84 95 2 7
 | 
			
		||||
30: 9 4 15
 | 
			
		||||
476971: 19 251 1 1 64 7
 | 
			
		||||
970777: 30 940 766 8 3
 | 
			
		||||
159859: 4 12 1 97 4
 | 
			
		||||
231027: 35 11 1 6 27
 | 
			
		||||
4274115: 7 61 19 22 15
 | 
			
		||||
2633044: 52 235 9 416 9 5
 | 
			
		||||
562592536093: 43 3 9 9 538 5 1 1 7 88 9
 | 
			
		||||
167062703: 466 3 40 7 4 89 67 734
 | 
			
		||||
1752669: 35 725 26 23 3
 | 
			
		||||
44847129600: 4 5 4 91 3 6 713 1 6 2 5 8
 | 
			
		||||
20743323845: 95 908 4 835 516 6 2 5
 | 
			
		||||
8390745051: 987 3 25 737 460 4 47
 | 
			
		||||
13772784238: 110 5 9 5 568 48 5 1
 | 
			
		||||
307678: 34 9 702 972 4
 | 
			
		||||
612535: 4 6 4 6 2 5 6 5 805 7
 | 
			
		||||
10226: 3 53 806 1 457 6 112
 | 
			
		||||
47532049: 792 1 2 3 5 838 5 209
 | 
			
		||||
7298163841: 8 634 4 44 80 142
 | 
			
		||||
595002250: 74 83 798 857 727 5
 | 
			
		||||
64727: 8 194 1 5 9 1 1 642 2 1 4
 | 
			
		||||
437338: 43 7 314 24
 | 
			
		||||
5830329: 9 42 1 5 723 7 8 5 2 3 7 5
 | 
			
		||||
213520627: 505 9 72 422 441
 | 
			
		||||
78795: 6 681 9 4 915 5
 | 
			
		||||
3400111: 9 77 90 49 3
 | 
			
		||||
296450: 2 78 3 6 59 9 2 6 355 98
 | 
			
		||||
69123441: 691 2 3 2 4 8 192
 | 
			
		||||
1328476352: 6 7 284 30 38 8 35 1 3
 | 
			
		||||
48263892840: 21 6 7 7 958 4 3 510 2 2
 | 
			
		||||
22374: 51 19 317 75 94 6 9
 | 
			
		||||
1870193: 9 4 5 5 63 5 902 190 3
 | 
			
		||||
4903206: 449 74 625 3 3 1 1 6 5 6
 | 
			
		||||
50497: 3 607 14
 | 
			
		||||
15543383: 52 49 61 5 83
 | 
			
		||||
326313836: 73 748 18 1 332
 | 
			
		||||
142946008740: 167 6 2 2 849 8 6 1 972
 | 
			
		||||
66119: 60 11 4 8 38 26 1 8
 | 
			
		||||
352673: 5 80 1 607 8
 | 
			
		||||
4748145: 20 680 5 349 1
 | 
			
		||||
41659: 16 1 612 4 43
 | 
			
		||||
19760039349: 3 4 2 2 9 8 950 393 4 9 1
 | 
			
		||||
1262: 4 1 42 6
 | 
			
		||||
135373: 4 1 1 33 73
 | 
			
		||||
15603: 7 3 41 2 2 29 7 5 2 12 5 3
 | 
			
		||||
189749: 7 182 74 2 5
 | 
			
		||||
23920861: 299 80 1 7 61
 | 
			
		||||
67374716131: 664 4 9 9 303 53 53 4 1
 | 
			
		||||
126434: 9 4 4 878 2
 | 
			
		||||
16472: 8 80 8 10 6 24 37 499
 | 
			
		||||
385576: 54 7 7 579
 | 
			
		||||
2091359270: 1 123 17 359 270
 | 
			
		||||
7464644589747: 87 572 297 26 4 1 50 3
 | 
			
		||||
17943599: 4 6 3 12 26 60 4 346 9 9
 | 
			
		||||
7541103871: 754 108 26 212 71
 | 
			
		||||
524886740: 8 83 917 8 629 78
 | 
			
		||||
11652: 1 2 8 2 7 46 13 48 137
 | 
			
		||||
22073620259: 5 7 8 5 60 9 4 5 7 8 343 5
 | 
			
		||||
153497: 40 59 54 49 8
 | 
			
		||||
160012072: 4 55 87 2 836
 | 
			
		||||
773049627: 53 3 2 2 1 4 6 7 9 6 166 5
 | 
			
		||||
362918: 23 13 250 6 11 2 245
 | 
			
		||||
2855: 2 2 1 1 963 2 7 849 63
 | 
			
		||||
7532225: 25 1 75 1 4 9 1 206 6 3 2
 | 
			
		||||
2373388704: 48 86 59 2 3 402 47
 | 
			
		||||
71516658151: 3 973 1 4 7 6 4 3 3 6 580
 | 
			
		||||
44208351385: 5 295 1 93 66 8 4 1 8 3
 | 
			
		||||
41680641422: 9 73 7 5 197 99 372
 | 
			
		||||
77258: 772 4 1 8
 | 
			
		||||
3574074712: 510 497 85 7 711
 | 
			
		||||
3629200: 144 561 6 70 844
 | 
			
		||||
8645954890: 3 7 1 413 9 5 6 8 8 59 49
 | 
			
		||||
324: 8 38 85 193
 | 
			
		||||
139717578777: 4 42 28 331 89 351 9
 | 
			
		||||
20783156: 4 618 5 1 9 2 4 6 3 2 588
 | 
			
		||||
5332869: 6 7 43 954 9
 | 
			
		||||
19565122303: 3 64 5 701 127 4 8 110
 | 
			
		||||
60150611: 371 8 4 5 744 907 53 4
 | 
			
		||||
3036: 23 4 2 80 53
 | 
			
		||||
304589020626: 9 940 803 3 4 499 6 9 9
 | 
			
		||||
125853036: 3 31 125 67 2 38
 | 
			
		||||
71001069: 2 469 2 3 7 1 5 6 5 84 69
 | 
			
		||||
28665152: 317 1 33 819 95 54 5
 | 
			
		||||
1551897162: 4 4 5 7 22 468 1 4 9 1 64
 | 
			
		||||
3353: 7 4 3 53
 | 
			
		||||
92263779397: 6 394 39 6 671 7 9 395
 | 
			
		||||
3900: 9 9 42 7 30
 | 
			
		||||
387: 31 7 7 2 1
 | 
			
		||||
5922229: 7 718 9 4 37 4 498 5 7 1
 | 
			
		||||
101119269240: 459 7 891 594 410
 | 
			
		||||
1544741: 51 49 3 19 23 1
 | 
			
		||||
384658: 7 430 5 82 169 6 3 7 1 5
 | 
			
		||||
3277181: 209 115 76 582 3 13 9
 | 
			
		||||
1082559870: 5 3 815 721 67 9 3
 | 
			
		||||
35081249323: 3 2 393 726 896 4 39
 | 
			
		||||
34790776: 2 30 9 5 5 4 355 9 2 70 6
 | 
			
		||||
7447: 83 3 16 1 519 9 391
 | 
			
		||||
13184885: 21 1 9 8 9 3 474 589 5
 | 
			
		||||
13150: 104 12 62 4 10 35
 | 
			
		||||
633828376016: 8 73 71 2 5 24 542 2
 | 
			
		||||
1808: 7 7 6 5 3 24 8
 | 
			
		||||
89246367: 3 52 3 17 845
 | 
			
		||||
537299093: 74 5 7 9 103 613 95
 | 
			
		||||
264979899464: 12 429 6 3 3 6 99 46 1 5
 | 
			
		||||
63657174: 633 2 33 71 74
 | 
			
		||||
169451365: 7 563 543 297 94
 | 
			
		||||
24445: 4 611 5
 | 
			
		||||
25584703270: 9 725 96 3 8 7 69 70
 | 
			
		||||
7229280: 52 183 4 8 307 45
 | 
			
		||||
2137: 627 1 2 4 7 1 427 442 3
 | 
			
		||||
10536366636: 2 19 6 5 473 3 6 81 36
 | 
			
		||||
336760: 5 5 29 1 4 7 60
 | 
			
		||||
8622501360: 78 38 56 46 730 55 2
 | 
			
		||||
1537930: 5 2 9 383 153 8 1 5 9 7 5
 | 
			
		||||
41034334492625: 701 7 97 8 334 361 5 5
 | 
			
		||||
2885440940: 9 8 14 3 42 35 284 938
 | 
			
		||||
2027614757: 8 3 2 7 69 69 91 27 7 6
 | 
			
		||||
1612: 1 5 7 3 46 922
 | 
			
		||||
1493097288: 372 737 7 778 139 8
 | 
			
		||||
1107003: 27 6 7 51 4
 | 
			
		||||
6956594: 94 37 2 59 4
 | 
			
		||||
3742655: 232 4 4 2 6 2 7 1 6 6 83 7
 | 
			
		||||
205630514403: 869 4 292 9 9 26 400
 | 
			
		||||
85307216: 42 52 2 20 6 72 18
 | 
			
		||||
83781098: 27 3 84 7 4 123 87 2 4
 | 
			
		||||
11789660127283: 7 838 46 619 872 98 5
 | 
			
		||||
153872: 116 2 652 2
 | 
			
		||||
63149571: 9 52 1 1 2 17 99 50 571
 | 
			
		||||
3615: 58 444 1 7 6 88
 | 
			
		||||
829471: 5 9 816 4 2 992 9 150
 | 
			
		||||
25093474: 971 8 8 67 2 842 60 4 8
 | 
			
		||||
2852921380400: 8 19 6 890 511 130 52
 | 
			
		||||
20891545203: 725 39 93 4 7 1 56 8 9 6
 | 
			
		||||
423487987: 6 882 9 6 9 4 5 8 1 5 56 9
 | 
			
		||||
3652795: 91 231 1 85 4 3 9 9 26
 | 
			
		||||
7693: 2 8 3 9 45
 | 
			
		||||
159135755: 270 83 6 9 1 5 152 49 7
 | 
			
		||||
32580391276: 80 9 2 3 5 8 9 8 58 26 3 4
 | 
			
		||||
15819: 1 52 1 4 605
 | 
			
		||||
351813: 8 6 38 9 95 3 9 4 6 2 1 9
 | 
			
		||||
2235701664: 8 499 2 64 8 4 3 21 8 7
 | 
			
		||||
971926: 122 849 92 5 1
 | 
			
		||||
141305: 4 14 74 12 34
 | 
			
		||||
8473749: 3 80 764 36 63 8 80
 | 
			
		||||
1891: 8 2 436 2 78 1 597 311
 | 
			
		||||
338: 1 4 22 20 291
 | 
			
		||||
71347630340: 629 84 4 7 6 30 1 340
 | 
			
		||||
1898508480: 80 33 43 960 407
 | 
			
		||||
3078986: 954 4 8 78 183 87
 | 
			
		||||
4866528: 27 48 1 270 2 24 1
 | 
			
		||||
15045: 722 281 15
 | 
			
		||||
150: 4 9 6 2 3 9
 | 
			
		||||
2968217: 9 2 614 7 7 8 58 9
 | 
			
		||||
48764: 517 93 312 365 6
 | 
			
		||||
7713543101: 1 8 993 863 912 102
 | 
			
		||||
3155144619195: 9 390 3 8 9 6 5 594 5 7 1
 | 
			
		||||
16230484: 5 157 304 8 5
 | 
			
		||||
9265984: 481 8 4 7 86
 | 
			
		||||
12201735070: 3 949 121 506 79 7 5 2
 | 
			
		||||
14765345: 7 7 26 44 649 4 42
 | 
			
		||||
76827869: 37 79 8 487 3 831 7 5 9
 | 
			
		||||
4548: 4 41 670 26 4
 | 
			
		||||
2515903: 2 2 2 1 3 79 9 8 950 2 2
 | 
			
		||||
623808: 51 13 9 8 16 6
 | 
			
		||||
947524166391: 5 922 8 2 408 8 6 387 4
 | 
			
		||||
98352: 10 11 1 97 109 6 6 40 9
 | 
			
		||||
3198805783: 63 3 6 7 40 11 57 82 1
 | 
			
		||||
584812664: 6 8 86 126 61
 | 
			
		||||
955953: 3 2 75 3 962 2 4 396 9
 | 
			
		||||
1361: 1 308 53
 | 
			
		||||
34236437: 10 2 634 5 2 1 9 12 6 9 5
 | 
			
		||||
111400423: 3 230 7 7 1 6 4 31 9 76 5
 | 
			
		||||
8755: 4 63 84 16 1
 | 
			
		||||
55631341: 389 7 78 3 68 23 61 7 3
 | 
			
		||||
44928086112: 4 720 2 78 86 1 13
 | 
			
		||||
1690605: 19 28 89 955 35
 | 
			
		||||
713592: 877 19 1 5 792
 | 
			
		||||
34138977: 83 53 1 4 726 977
 | 
			
		||||
40322239: 4 2 96 224 1
 | 
			
		||||
876119: 102 1 9 274 735
 | 
			
		||||
2125: 935 272 4 17 897
 | 
			
		||||
1118007: 408 4 974 15 798 9
 | 
			
		||||
7533029: 444 309 20 5 59 468
 | 
			
		||||
349272: 2 355 977 9 374 4 96
 | 
			
		||||
1004401624397: 2 7 4 675 3 8 8 2 2 43 9 6
 | 
			
		||||
639046: 56 103 622 46
 | 
			
		||||
222430563: 5 98 44 3 5 4 818 3
 | 
			
		||||
874369: 8 7 4 37 1
 | 
			
		||||
1519678947: 232 1 211 797 6 7 67 7
 | 
			
		||||
7955605335: 795 5 605 335
 | 
			
		||||
54512772: 85 1 75 640 772
 | 
			
		||||
6329058005: 7 6 8 5 749 793 5 28 42
 | 
			
		||||
95671956: 9 55 845 448 426 55
 | 
			
		||||
173706852200: 6 999 7 253 862 38 98
 | 
			
		||||
15853: 443 78 6 30 40 3
 | 
			
		||||
332105: 4 828 73 831 1
 | 
			
		||||
14979416248099: 47 10 36 649 8 4 7 7 7 9
 | 
			
		||||
69713480: 15 54 709 4 40 79
 | 
			
		||||
1444801633: 1 687 700 349 3 1 586
 | 
			
		||||
12323: 1 8 6 64 5 3
 | 
			
		||||
812179: 677 197 929 9 224
 | 
			
		||||
884523: 7 38 21 936 3
 | 
			
		||||
636748187661: 85 925 5 2 7 798 629 9
 | 
			
		||||
1582276: 41 5 466 449 4
 | 
			
		||||
189700: 8 447 87 7 50
 | 
			
		||||
730625: 311 78 87 9 3 4
 | 
			
		||||
40187734508: 4 7 482 2 7 6 7 5 7 91 2 5
 | 
			
		||||
2565167587918: 37 24 2 2 2 18 30 574 2
 | 
			
		||||
363523992: 10 727 5 1 6 7 9 8 1 8 1
 | 
			
		||||
1807378496: 264 6 8 7 209 776
 | 
			
		||||
4222252496768: 32 4 3 945 390 524 32
 | 
			
		||||
8132686: 67 492 94 6 3 41 7 288
 | 
			
		||||
1974: 6 95 9 87 4
 | 
			
		||||
97727392: 87 7 95 86 6 70 17
 | 
			
		||||
78603: 8 23 622 120 243
 | 
			
		||||
32354024: 8 2 657 6 6 2 53 4 1 6 5
 | 
			
		||||
228352631: 35 5 9 9 4 8 27 2 8 1 1
 | 
			
		||||
1455444374702: 5 1 317 4 6 9 3 7 4 70 1
 | 
			
		||||
13330: 7 49 36 44 613 323 3 2
 | 
			
		||||
43824: 46 62 4 48 865 3 7 116
 | 
			
		||||
43931528: 37 6 93 143 9 8
 | 
			
		||||
154238780095: 59 29 98 867 98 3
 | 
			
		||||
9649: 96 4 2 9
 | 
			
		||||
1043857: 84 954 5 8 57
 | 
			
		||||
641654: 585 377 667
 | 
			
		||||
36379506: 93 83 77 7 42 34 7
 | 
			
		||||
19603586: 22 26 9 8 476 4
 | 
			
		||||
39329: 551 7 5 21 7 88
 | 
			
		||||
1227224918: 592 6 5 3 5 1 9 2 23 5 3
 | 
			
		||||
231834: 528 174 5 33 7
 | 
			
		||||
1494717675: 653 763 3 214 458
 | 
			
		||||
2703024464: 9 97 9 786 5 7 667 291
 | 
			
		||||
6605310: 77 6 7 19 64
 | 
			
		||||
3528096: 50 7 78 1 4 8 820 454
 | 
			
		||||
114576550172: 6 8 620 7 1 1 550 1 2 5 2
 | 
			
		||||
22902964: 33 694 964
 | 
			
		||||
10556964: 9 2 9 631 3 1 9 6 3 2 4 99
 | 
			
		||||
6251608: 8 1 3 47 8 9 5 8 2 61 97 7
 | 
			
		||||
1374: 41 1 4 6 390
 | 
			
		||||
106978: 48 248 7 70 14 5 852 6
 | 
			
		||||
15347001620: 28 2 870 62 315 631 9
 | 
			
		||||
80016: 8 2 8 9 1 3 986 9 70 71
 | 
			
		||||
5140: 45 4 926 4 718
 | 
			
		||||
1918704334: 959 34 5 6 4 333
 | 
			
		||||
7121: 2 1 51 864 7
 | 
			
		||||
126247599: 775 543 32 3
 | 
			
		||||
3848202: 867 96 444 3 3 9
 | 
			
		||||
31676006: 53 29 399 553 8 158
 | 
			
		||||
1375579: 95 965 27 15 49
 | 
			
		||||
224995232: 5 3 9 35 527 2 8 3 232 1
 | 
			
		||||
53853040: 355 754 5 607 16
 | 
			
		||||
1149: 4 28 4 241 791
 | 
			
		||||
29776344: 3 65 55 6 6 62 8 2 59 8
 | 
			
		||||
							
								
								
									
										97
									
								
								src/days/d07.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								src/days/d07.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,97 @@
 | 
			
		|||
use std::fs;
 | 
			
		||||
 | 
			
		||||
use rayon::iter::{ParallelBridge, ParallelIterator};
 | 
			
		||||
 | 
			
		||||
pub fn solve() {
 | 
			
		||||
    let path = "res/07/input";
 | 
			
		||||
 | 
			
		||||
    let contents = fs::read_to_string(path).expect("Something went wrong reading the file");
 | 
			
		||||
 | 
			
		||||
    let equations: Vec<(usize, Vec<usize>)> = contents
 | 
			
		||||
        .lines()
 | 
			
		||||
        .map(|line| {
 | 
			
		||||
            let (res_str, nums_str) = line.split_once(": ").unwrap();
 | 
			
		||||
            let res: usize = res_str.trim().parse().unwrap();
 | 
			
		||||
            let nums: Vec<usize> = nums_str
 | 
			
		||||
                .trim()
 | 
			
		||||
                .split(' ')
 | 
			
		||||
                .map(|num| num.trim().parse().unwrap())
 | 
			
		||||
                .collect();
 | 
			
		||||
            (res, nums)
 | 
			
		||||
        })
 | 
			
		||||
        .collect();
 | 
			
		||||
 | 
			
		||||
    let result: usize = equations
 | 
			
		||||
        .iter()
 | 
			
		||||
        .par_bridge()
 | 
			
		||||
        .filter(|(target_res, nums)| {
 | 
			
		||||
            // try all combinations of + and * between nums and check if res can be achieved
 | 
			
		||||
            let mut operator_bits = 0;
 | 
			
		||||
            loop {
 | 
			
		||||
                let mut res = nums[0];
 | 
			
		||||
                for i in 1..nums.len() {
 | 
			
		||||
                    if operator_bits & 1 << (i - 1) == 0 {
 | 
			
		||||
                        res += nums[i];
 | 
			
		||||
                    } else {
 | 
			
		||||
                        res *= nums[i];
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                if res == *target_res {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
                if operator_bits == 2usize.pow(nums.len() as u32) - 1 {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
                operator_bits += 1;
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
        .map(|(res, _)| res)
 | 
			
		||||
        .sum();
 | 
			
		||||
 | 
			
		||||
    println!("Result 1: {}", result);
 | 
			
		||||
 | 
			
		||||
    let result: usize = equations
 | 
			
		||||
        .iter()
 | 
			
		||||
        .par_bridge()
 | 
			
		||||
        .filter(|(target_res, nums)| {
 | 
			
		||||
            // try all combinations of + and * between nums and check if res can be achieved
 | 
			
		||||
            let mut operator_bits: usize = 0;
 | 
			
		||||
            loop {
 | 
			
		||||
                let mut concat_bits: usize = 0;
 | 
			
		||||
                loop {
 | 
			
		||||
                    let mut res = nums[0];
 | 
			
		||||
                    for i in 1..nums.len() {
 | 
			
		||||
                        if concat_bits & 1 << (i - 1) == 0 {
 | 
			
		||||
                            if operator_bits & 1 << (i - 1) == 0 {
 | 
			
		||||
                                res += nums[i];
 | 
			
		||||
                            } else {
 | 
			
		||||
                                res *= nums[i];
 | 
			
		||||
                            }
 | 
			
		||||
                        } else {
 | 
			
		||||
                            res = concat(res, nums[i]);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    if res == *target_res {
 | 
			
		||||
                        return true;
 | 
			
		||||
                    }
 | 
			
		||||
                    if concat_bits == 2usize.pow(nums.len() as u32) - 1 {
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                    concat_bits += 1;
 | 
			
		||||
                }
 | 
			
		||||
                if operator_bits == 2usize.pow(nums.len() as u32) - 1 {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                operator_bits += 1;
 | 
			
		||||
            }
 | 
			
		||||
            false
 | 
			
		||||
        })
 | 
			
		||||
        .map(|(res, _)| res)
 | 
			
		||||
        .sum();
 | 
			
		||||
 | 
			
		||||
    println!("Result 2: {}", result);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn concat(a: usize, b: usize) -> usize {
 | 
			
		||||
    a * 10usize.pow(b.ilog10() + 1) + b
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -4,7 +4,7 @@ extern crate scan_fmt;
 | 
			
		|||
use std::time::Instant;
 | 
			
		||||
 | 
			
		||||
fn main() {
 | 
			
		||||
    //days::d06::solve()
 | 
			
		||||
    //days::d07::solve()
 | 
			
		||||
    _all_days()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -37,11 +37,11 @@ fn _all_days() {
 | 
			
		|||
    days::d06::solve();
 | 
			
		||||
    time = _print_elapsed(time);
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
    println!("\nDay 7");
 | 
			
		||||
    days::d07::solve();
 | 
			
		||||
    time = _print_elapsed(time);
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
    println!("\nDay 8");
 | 
			
		||||
    days::d08::solve();
 | 
			
		||||
    time = _print_elapsed(time);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue