From 661080d4d947d15f02a7b247ee3cfb9210929758 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sat, 3 Dec 2016 23:52:16 -0500 Subject: Day 3 --- input/day03.txt | 1635 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/bin/day03.rs | 43 ++ 2 files changed, 1678 insertions(+) create mode 100644 input/day03.txt create mode 100644 src/bin/day03.rs diff --git a/input/day03.txt b/input/day03.txt new file mode 100644 index 0000000..6761c49 --- /dev/null +++ b/input/day03.txt @@ -0,0 +1,1635 @@ + 785 516 744 + 272 511 358 + 801 791 693 + 572 150 74 + 644 534 138 + 191 396 196 + 860 92 399 + 233 321 823 + 720 333 570 + 308 427 572 + 246 206 66 + 156 261 595 + 336 810 505 + 810 210 938 + 615 987 820 + 117 22 519 + 412 990 256 + 405 996 423 + 55 366 418 + 290 402 810 + 313 608 755 + 740 421 321 + 255 322 582 + 990 174 658 + 609 818 360 + 565 831 87 + 146 94 313 + 895 439 866 + 673 3 211 + 517 439 733 + 281 651 582 + 601 711 257 + 467 262 375 + 33 52 584 + 281 418 395 + 278 438 917 + 397 413 991 + 495 306 757 + 232 542 800 + 686 574 729 + 101 642 506 + 785 898 932 + 975 924 106 + 889 792 114 + 287 901 144 + 586 399 529 + 619 307 456 + 287 508 88 + 159 175 190 + 195 261 148 + 348 195 270 + 905 600 686 + 847 396 680 + 59 421 879 + 969 343 600 + 969 361 585 + 95 115 209 + 512 831 395 + 172 774 662 + 372 396 290 + 957 281 445 + 745 525 297 + 489 630 225 + 81 138 18 + 694 114 404 + 764 196 383 + 607 861 94 + 896 92 140 + 786 862 123 + 389 449 298 + 795 339 780 + 863 507 892 + 589 850 759 + 273 645 371 + 368 884 486 + 637 553 423 + 391 630 950 + 442 950 581 + 383 650 712 + 538 844 405 + 353 261 544 + 682 60 336 + 750 308 698 + 177 369 643 + 479 919 137 + 482 598 184 + 275 726 55 + 139 874 850 + 456 195 839 + 385 766 205 + 561 751 249 + 397 764 714 + 508 856 876 + 478 410 12 + 686 230 267 + 876 247 272 + 160 436 673 + 466 798 278 + 487 839 773 + 754 780 900 + 45 983 801 + 800 595 188 + 523 408 239 + 269 609 216 + 745 692 237 + 15 588 840 + 702 583 298 + 707 150 859 + 835 750 375 + 211 754 368 + 892 434 152 + 521 659 592 + 683 573 904 + 902 544 412 + 718 218 502 + 379 227 292 + 482 87 780 + 903 433 382 + 223 196 369 + 824 588 734 + 342 396 279 + 164 561 918 + 409 841 918 + 893 409 204 + 33 435 169 + 858 423 74 + 134 797 255 + 517 881 109 + 466 373 193 + 379 180 973 + 620 467 941 + 260 512 298 + 993 461 89 + 111 986 990 + 946 668 987 + 26 65 110 + 223 55 372 + 235 103 473 + 288 244 964 + 343 199 25 + 62 213 984 + 602 117 311 + 624 142 356 + 65 130 248 + 709 95 376 + 316 897 723 + 420 840 349 + 159 460 208 + 385 445 929 + 408 13 791 + 149 92 682 + 791 253 440 + 870 196 395 + 651 347 49 + 738 362 536 + 392 226 485 + 683 642 938 + 332 890 393 + 954 394 971 + 279 217 309 + 610 429 747 + 588 219 959 + 840 565 791 + 671 624 380 + 384 426 485 + 407 323 226 + 780 290 428 + 539 41 571 + 455 267 306 + 48 607 250 + 432 567 400 + 851 507 477 + 853 456 923 + 615 416 838 + 245 496 353 + 253 325 926 + 159 716 989 + 488 216 473 + 808 222 742 + 395 178 798 + 514 383 732 + 478 845 728 + 508 486 4 + 230 643 35 + 151 298 584 + 123 906 576 + 583 682 294 + 580 605 784 + 624 517 984 + 911 778 745 + 9 897 325 + 913 357 501 + 27 221 249 + 798 669 614 + 824 777 397 + 749 461 304 + 734 769 1 + 447 543 306 + 454 200 19 + 551 134 674 + 562 329 665 + 352 188 281 + 808 151 622 + 834 255 648 + 352 199 340 + 429 182 121 + 585 223 382 + 524 977 225 + 520 156 532 + 827 929 419 + 429 175 759 + 284 376 877 + 312 548 751 + 571 507 529 + 390 503 483 + 710 1 146 + 938 421 582 + 975 981 186 + 118 771 531 + 328 490 638 + 452 743 750 + 511 772 242 + 957 850 177 + 669 750 665 + 975 296 664 + 228 35 159 + 763 347 650 + 752 315 557 + 366 530 294 + 828 154 645 + 730 388 763 + 744 298 774 + 459 508 375 + 449 485 748 + 537 819 907 + 526 259 551 + 773 890 650 + 523 839 473 + 645 928 485 + 333 109 115 + 403 952 399 + 229 50 606 + 377 900 212 + 693 731 399 + 682 103 579 + 441 764 471 + 481 114 267 + 196 567 591 + 353 495 798 + 436 348 30 + 794 88 526 + 926 411 524 + 1 862 754 + 839 440 848 + 839 458 109 + 961 799 930 + 944 692 853 + 168 520 788 + 579 920 687 + 32 930 283 + 575 759 747 + 857 705 926 + 842 674 925 + 233 163 29 + 544 409 719 + 266 643 767 + 315 323 56 + 754 135 658 + 99 757 569 + 818 832 207 + 296 602 519 + 316 371 301 + 409 879 747 + 765 696 151 + 960 836 689 + 526 564 790 + 33 954 343 + 548 203 379 + 545 797 622 + 550 122 105 + 606 538 12 + 686 434 102 + 595 820 249 + 642 215 221 + 120 703 124 + 972 440 214 + 444 544 447 + 963 225 373 + 904 628 271 + 733 109 374 + 193 673 588 + 446 724 945 + 246 771 901 + 389 900 339 + 331 323 756 + 245 428 969 + 565 457 539 + 977 743 742 + 26 199 543 + 960 804 405 + 795 914 721 + 454 695 816 + 984 422 849 + 437 495 803 + 237 106 58 + 221 442 834 + 638 278 21 + 697 880 830 + 818 953 849 + 276 335 944 + 152 650 953 + 232 972 23 + 675 991 179 + 741 579 408 + 164 741 285 + 682 156 113 + 71 607 759 + 740 692 644 + 284 229 308 + 681 114 133 + 961 232 394 + 214 653 533 + 240 863 332 + 115 651 664 + 396 356 477 + 308 220 134 + 283 505 569 + 286 400 234 + 413 830 734 + 534 877 619 + 293 562 171 + 862 216 186 + 819 427 63 + 491 121 321 + 139 108 142 + 438 39 219 + 345 120 486 + 367 91 482 + 400 61 605 + 780 858 434 + 854 188 478 + 141 726 62 + 600 904 292 + 312 328 103 + 648 896 200 + 304 299 382 + 372 325 229 + 625 114 513 + 95 742 875 + 432 99 818 + 510 731 863 + 353 520 495 + 501 335 400 + 411 187 358 + 612 274 381 + 658 586 774 + 908 858 876 + 162 722 881 + 604 277 772 + 677 484 369 + 964 772 239 + 973 618 388 + 463 799 264 + 262 49 691 + 800 816 875 + 827 820 394 + 828 682 576 + 571 670 724 + 322 910 202 + 12 72 856 + 529 771 829 + 520 830 38 + 796 154 681 + 662 160 750 + 193 314 633 + 772 925 453 + 769 769 427 + 318 182 338 + 552 366 505 + 82 205 468 + 486 218 352 + 542 633 640 + 612 625 879 + 69 715 867 + 233 571 479 + 818 703 639 + 866 989 856 + 285 504 265 + 981 758 773 + 920 716 904 + 698 390 977 + 336 1 838 + 563 391 169 + 692 87 692 + 17 75 754 + 691 100 143 + 605 754 711 + 844 724 864 + 261 457 167 + 640 655 371 + 554 294 874 + 777 541 528 + 902 595 406 + 774 309 254 + 322 721 257 + 638 883 617 + 278 793 525 + 779 669 120 + 144 539 722 + 106 533 242 + 187 925 743 + 221 863 490 + 284 899 481 + 186 82 103 + 102 143 562 + 306 494 540 + 352 574 239 + 885 218 247 + 551 750 123 + 859 634 206 + 391 513 363 + 361 608 410 + 390 303 93 + 353 111 592 + 472 450 724 + 395 507 621 + 494 19 266 + 184 416 881 + 330 402 821 + 999 82 370 + 613 165 722 + 572 141 978 + 361 202 671 + 975 376 474 + 878 445 216 + 925 529 713 + 499 522 338 + 891 315 749 + 712 539 290 + 382 388 479 + 806 394 342 + 273 56 594 + 213 3 226 + 359 52 693 + 637 612 601 + 792 336 253 + 223 380 699 + 189 101 265 + 812 297 699 + 635 255 739 + 885 653 957 + 165 873 646 + 883 444 400 + 982 789 89 + 6 922 192 + 990 310 109 + 159 595 656 + 884 640 514 + 876 44 671 + 288 569 864 + 108 255 977 + 237 819 178 + 417 923 144 + 231 444 375 + 452 951 241 + 947 724 475 + 569 243 481 + 646 678 7 + 282 474 921 + 830 520 36 + 961 461 957 + 333 955 876 + 359 778 909 + 128 276 70 + 914 961 185 + 606 942 453 + 373 323 614 + 270 170 447 + 745 480 454 + 499 649 95 + 468 127 922 + 436 722 121 + 202 773 971 + 307 127 21 + 11 122 90 + 305 54 93 + 266 543 113 + 931 735 706 + 931 480 683 + 306 433 158 + 155 35 379 + 343 401 321 + 880 477 516 + 226 996 282 + 778 531 528 + 722 313 162 + 975 489 594 + 406 312 635 + 106 191 147 + 180 731 20 + 249 869 140 + 336 359 426 + 266 580 403 + 569 702 587 + 740 913 549 + 197 372 292 + 585 964 683 + 340 532 249 + 592 588 910 + 280 78 824 + 675 892 101 + 642 718 222 + 393 359 157 + 714 442 999 + 851 425 954 + 487 545 408 + 504 759 191 + 509 179 626 + 774 859 455 + 335 476 523 + 573 622 288 + 518 561 504 + 812 100 602 + 433 455 676 + 565 453 112 + 282 266 523 + 642 508 440 + 558 512 102 + 109 685 128 + 291 903 221 + 254 370 275 + 300 398 431 + 341 809 383 + 622 948 79 + 813 961 308 + 972 451 601 + 390 877 719 + 988 448 275 + 184 229 542 + 902 307 761 + 587 575 909 + 442 648 331 + 424 98 620 + 512 106 578 + 411 219 614 + 577 294 104 + 81 916 468 + 84 842 287 + 96 261 678 + 34 323 226 + 943 321 29 + 906 619 258 + 924 503 215 + 929 149 431 + 56 505 511 + 876 769 999 + 994 714 980 + 416 495 355 + 79 265 420 + 37 917 286 + 53 782 558 + 868 327 59 + 926 27 398 + 704 348 370 + 773 909 356 + 969 799 551 + 282 138 448 + 808 51 437 + 417 277 372 + 806 291 537 + 818 510 460 + 945 372 38 + 127 191 422 + 100 287 753 + 341 510 391 + 317 252 884 + 629 201 567 + 164 10 560 + 632 205 370 + 353 891 990 + 609 391 12 + 889 564 990 + 74 820 241 + 356 636 389 + 309 232 292 + 654 294 199 + 45 226 362 + 645 308 329 + 955 891 186 + 180 78 115 + 842 938 141 + 141 179 159 + 401 227 573 + 372 73 681 + 562 216 682 + 184 526 998 + 530 450 357 + 296 812 233 + 398 287 530 + 613 539 372 + 523 719 554 + 377 735 429 + 854 319 362 + 445 828 221 + 506 485 402 + 519 603 250 + 490 421 819 + 638 204 983 + 664 585 407 + 434 503 124 + 512 551 153 + 135 449 30 + 673 10 513 + 682 45 265 + 32 44 498 + 168 415 698 + 151 821 711 + 179 682 145 + 800 471 326 + 376 893 698 + 885 523 390 + 992 49 159 + 949 8 59 + 83 47 107 + 871 46 660 + 610 954 892 + 352 956 637 + 12 139 444 + 517 748 733 + 502 731 354 + 368 754 687 + 197 759 584 + 292 25 928 + 197 319 514 + 359 824 99 + 458 827 546 + 681 543 197 + 160 492 603 + 634 82 455 + 456 96 53 + 399 94 836 + 702 2 814 + 614 422 467 + 161 290 252 + 506 605 591 + 8 454 407 + 46 544 489 + 42 491 477 + 772 602 767 + 359 465 769 + 970 360 114 + 959 552 83 + 945 581 284 + 26 314 286 + 153 708 707 + 444 681 830 + 400 65 430 + 22 993 185 + 327 525 125 + 321 665 106 + 538 632 959 + 552 220 966 + 17 787 5 + 561 309 865 + 997 652 785 + 678 924 297 + 772 290 460 + 322 347 473 + 811 393 92 + 283 398 625 + 349 50 528 + 385 403 544 + 404 671 204 + 430 214 286 + 798 480 219 + 430 440 811 + 240 249 442 + 223 510 411 + 590 18 592 + 468 166 556 + 542 165 708 + 93 12 480 + 893 355 601 + 822 348 850 + 431 606 256 + 367 819 690 + 188 247 644 + 766 199 514 + 384 469 416 + 412 520 459 + 261 326 646 + 746 533 31 + 972 788 664 + 465 548 470 + 257 371 412 + 633 703 817 + 525 26 466 + 6 667 539 + 532 692 356 + 891 468 602 + 709 24 599 + 275 449 2 + 674 471 289 + 683 549 57 + 177 917 270 + 954 311 715 + 991 921 707 + 115 946 6 + 745 615 446 + 646 288 148 + 725 333 588 + 933 915 326 + 828 947 286 + 350 59 117 + 598 98 286 + 436 127 91 + 461 223 198 + 334 167 679 + 506 86 803 + 254 237 989 + 878 248 371 + 416 757 398 + 721 841 757 + 761 303 973 + 24 76 928 + 749 280 886 + 194 695 42 + 134 261 752 + 134 557 727 + 345 367 861 + 380 87 425 + 685 424 723 + 17 738 451 + 902 886 569 + 920 272 125 + 239 222 797 + 361 951 767 + 273 835 197 + 696 235 427 + 247 212 922 + 706 389 739 + 480 893 290 + 877 177 494 + 450 864 281 + 392 164 313 + 799 233 293 + 416 168 35 + 860 290 4 + 989 284 124 + 710 88 120 + 431 307 526 + 515 417 528 + 442 400 566 + 108 858 371 + 47 472 519 + 147 627 386 + 644 481 315 + 168 838 337 + 675 409 29 + 130 117 449 + 959 401 512 + 963 416 667 + 729 166 375 + 843 452 322 + 749 325 88 + 978 850 511 + 91 789 818 + 993 552 510 + 741 512 45 + 836 644 865 + 136 851 903 + 711 818 984 + 933 760 333 + 461 66 945 + 285 198 321 + 726 577 317 + 952 421 2 + 278 961 835 + 995 134 148 + 805 999 760 + 542 731 575 + 657 754 721 + 135 43 343 + 755 179 318 + 372 24 646 + 577 194 595 + 277 7 440 + 530 48 416 + 257 54 634 + 772 302 492 + 789 397 21 + 532 270 499 + 145 511 583 + 600 286 402 + 628 449 621 + 577 588 199 + 485 965 239 + 765 760 422 + 709 284 676 + 962 672 786 + 760 716 362 + 511 254 53 + 626 96 383 + 488 316 340 + 19 256 733 + 680 798 260 + 693 578 908 + 810 216 783 + 485 703 650 + 965 741 152 + 44 544 334 + 880 702 451 + 887 581 132 + 476 77 741 + 661 24 435 + 858 68 607 + 943 416 836 + 936 334 662 + 5 397 348 + 452 838 182 + 801 89 369 + 781 853 284 + 969 23 717 + 482 493 611 + 560 483 394 + 221 642 492 + 641 393 428 + 491 752 98 + 710 791 437 + 615 198 656 + 146 646 943 + 218 385 132 + 934 209 589 + 863 299 513 + 941 624 167 + 648 514 553 + 724 157 441 + 389 733 241 + 236 109 421 + 607 816 536 + 363 877 317 + 508 493 332 + 782 929 79 + 535 607 463 + 877 32 399 + 637 626 172 + 511 865 972 + 560 916 928 + 599 325 80 + 809 477 224 + 724 60 279 + 524 454 262 + 960 517 994 + 216 42 880 + 969 487 190 + 977 329 652 + 916 539 696 + 271 581 76 + 660 74 681 + 768 761 323 + 108 821 440 + 224 478 560 + 373 567 614 + 417 716 566 + 178 155 529 + 994 670 562 + 987 621 375 + 161 498 922 + 527 843 478 + 495 975 788 + 528 11 567 + 713 744 575 + 268 746 35 + 802 53 869 + 789 717 381 + 437 703 871 + 177 220 104 + 638 684 79 + 807 535 71 + 525 978 321 + 576 696 351 + 928 572 83 + 414 437 25 + 75 371 320 + 338 89 327 + 376 90 239 + 363 330 126 + 12 260 210 + 284 21 356 + 403 54 748 + 551 49 530 + 530 461 249 + 640 450 399 + 153 754 393 + 548 774 958 + 602 773 906 + 417 11 377 + 188 879 740 + 486 105 649 + 426 929 107 + 848 677 563 + 913 728 646 + 700 116 390 + 148 425 782 + 564 335 839 + 584 652 155 + 707 887 518 + 489 250 857 + 979 726 399 + 113 305 420 + 402 396 742 + 479 99 950 + 753 425 677 + 88 533 246 + 804 138 554 + 76 734 294 + 472 550 372 + 415 621 525 + 76 617 903 + 821 145 901 + 876 539 35 + 91 745 637 + 871 604 106 + 811 466 729 + 694 153 573 + 100 735 306 + 660 640 817 + 927 55 814 + 852 30 289 + 741 33 898 + 193 57 636 + 260 208 711 + 172 215 152 + 790 262 520 + 92 511 437 + 726 622 89 + 709 848 318 + 269 960 557 + 940 814 793 + 286 59 993 + 529 6 870 + 415 58 850 + 578 13 524 + 261 258 423 + 695 247 290 + 512 229 270 + 485 271 272 + 118 461 3 + 757 679 808 + 830 886 324 + 913 315 870 + 414 229 764 + 386 567 738 + 32 657 59 + 336 169 14 + 821 494 667 + 815 606 674 + 20 654 529 + 482 674 49 + 476 321 512 + 661 466 229 + 869 974 565 + 205 686 438 + 466 218 494 + 567 519 761 + 257 658 648 + 546 491 467 + 102 526 542 + 542 949 126 + 608 999 976 + 867 666 798 + 421 801 941 + 825 589 335 + 871 93 179 + 491 670 303 + 464 256 249 + 318 650 322 + 168 807 391 + 513 5 179 + 770 8 127 + 960 9 82 + 561 661 885 + 176 670 865 + 468 382 20 + 811 732 457 + 709 856 356 + 713 378 649 + 306 510 409 + 963 269 649 + 988 749 782 + 208 173 181 + 679 734 178 + 884 870 45 + 763 290 80 + 228 495 689 + 736 653 771 + 325 948 972 + 985 132 914 + 770 859 360 + 382 859 755 + 781 866 681 + 922 20 119 + 628 584 547 + 584 262 320 + 62 407 277 + 831 531 304 + 979 31 842 + 194 538 646 + 77 61 758 + 245 247 620 + 175 298 876 + 315 121 893 + 185 404 558 + 222 359 367 + 901 873 23 + 109 560 553 + 819 848 567 + 509 184 809 + 188 194 46 + 405 255 773 + 333 734 547 + 283 750 154 + 115 220 406 + 551 373 358 + 851 505 478 + 961 847 160 + 661 295 417 + 489 136 814 + 192 307 866 + 976 763 437 + 255 964 24 + 786 900 454 + 727 560 520 + 814 169 504 + 882 573 524 + 550 409 236 + 567 647 258 + 155 576 474 + 508 455 921 + 718 197 9 + 331 356 917 + 344 78 748 + 204 6 937 + 187 83 648 + 138 81 913 + 314 972 914 + 286 971 4 + 677 344 702 + 326 452 163 + 407 131 576 + 560 351 137 + 701 839 354 + 475 503 263 + 606 504 651 + 919 601 112 + 709 224 732 + 714 184 103 + 261 554 192 + 766 381 290 + 388 784 853 + 447 869 923 + 504 124 571 + 923 643 251 + 323 679 152 + 847 477 171 + 796 368 649 + 80 716 799 + 771 677 294 + 270 364 957 + 253 591 959 + 17 756 22 + 121 466 617 + 401 838 752 + 350 604 913 + 393 811 828 + 646 949 940 + 328 230 516 + 794 443 695 + 136 429 579 + 657 140 613 + 803 177 821 + 829 564 440 + 560 469 853 + 961 693 979 + 382 661 84 + 630 180 995 + 626 353 575 + 616 502 687 + 264 223 764 + 64 507 569 + 575 427 662 + 619 807 506 + 663 203 959 + 978 775 783 + 317 749 481 + 3 581 875 + 320 828 793 + 317 838 107 + 671 603 282 + 524 581 326 + 619 728 57 + 91 937 198 + 182 353 260 + 226 759 244 + 140 153 149 + 387 732 239 + 427 761 138 + 339 447 421 + 278 439 647 + 82 135 839 + 824 513 865 + 117 310 825 + 838 670 58 + 183 82 130 + 212 209 749 + 118 151 861 + 978 275 262 + 273 747 689 + 916 739 878 + 689 270 339 + 358 268 750 + 966 97 753 + 161 685 813 + 174 396 866 + 70 861 132 + 866 117 790 + 737 201 723 + 209 85 468 + 821 948 557 + 182 374 327 + 912 671 412 + 444 592 746 + 567 613 415 + 561 75 393 + 631 428 740 + 976 362 326 + 504 171 911 + 753 886 430 + 738 680 494 + 839 371 481 + 979 537 330 + 333 886 216 + 669 357 476 + 107 186 484 + 302 327 78 + 400 231 541 + 159 873 75 + 744 684 46 + 592 363 80 + 944 670 496 + 811 292 699 + 545 959 949 + 299 552 632 + 683 94 14 + 418 603 646 + 370 781 758 + 364 236 619 + 107 837 860 + 106 409 344 + 492 713 36 + 398 460 375 + 730 569 497 + 733 409 499 + 577 349 19 + 652 182 824 + 768 822 363 + 207 862 535 + 911 344 372 + 868 814 640 + 68 792 781 + 674 787 205 + 182 852 241 + 725 665 43 + 187 852 838 + 615 856 418 + 632 277 593 + 654 386 27 + 805 801 218 + 328 416 226 + 76 206 209 + 81 209 660 + 31 231 523 + 569 910 110 + 815 106 675 + 739 830 604 + 534 724 869 + 379 460 782 + 549 270 934 + 324 105 218 + 841 218 205 + 739 259 232 + 572 504 356 + 66 459 486 + 504 66 344 + 873 117 119 + 261 245 916 + 621 157 915 + 220 648 409 + 630 192 549 + 440 773 415 + 816 468 543 + 475 374 845 + 446 219 487 + 999 434 835 + 304 444 775 + 698 203 348 + 715 544 424 + 206 628 403 + 760 782 86 + 651 599 486 + 973 404 562 + 614 229 172 + 396 460 782 + 434 339 349 + 88 790 818 + 925 685 952 + 922 381 967 + 723 870 704 + 94 145 400 + 308 686 530 + 288 716 629 + 867 678 982 + 554 414 584 + 942 429 931 + 608 828 977 + 599 663 620 + 867 330 419 + 200 740 588 + 225 213 673 + 146 675 372 + 302 792 589 + 299 948 809 + 16 942 797 + 262 796 418 + 591 828 555 + 532 403 619 + 694 289 960 + 801 532 203 + 918 746 870 + 127 617 829 + 350 179 938 + 326 510 128 + 432 714 226 + 948 786 102 + 866 664 162 + 302 115 584 + 714 623 211 + 829 582 543 + 173 321 260 + 47 284 919 + 133 35 880 + 614 25 827 + 768 490 998 + 825 502 252 + 275 750 219 + 716 140 453 + 758 864 541 + 563 352 768 + 197 800 911 + 670 540 302 + 307 237 726 + 76 667 665 + 322 617 207 + 118 298 820 + 283 548 228 + 381 502 797 + 990 491 579 + 250 474 670 + 784 55 283 + 729 933 464 + 255 765 347 + 807 818 198 + 594 601 446 + 374 725 121 + 591 760 424 + 480 456 809 + 974 408 234 + 876 153 811 + 540 263 238 + 535 68 556 + 21 293 527 + 613 39 765 + 761 255 406 + 596 279 414 + 772 451 527 + 258 554 169 + 958 697 445 + 127 9 107 + 607 445 305 + 695 435 396 + 487 224 873 + 671 199 792 + 739 37 85 + 859 744 284 + 947 299 230 + 755 817 226 + 827 207 658 + 882 709 567 + 303 509 790 + 73 262 270 + 917 112 21 + 949 277 281 + 559 557 918 + 668 875 906 + 308 669 543 + 479 563 879 + 311 317 834 + 534 751 50 + 275 774 278 + 200 642 690 + 293 196 466 + 780 804 135 + 866 162 122 + 916 783 58 + 631 477 70 + 878 375 67 + 425 621 4 + 826 161 926 + 147 884 139 + 717 936 799 + 140 703 405 + 284 168 89 + 144 738 315 + 418 417 564 + 439 357 820 + 73 113 702 + 163 550 647 + 144 780 984 + 34 592 770 + 696 167 452 + 666 541 973 + 314 622 567 + 986 92 636 + 301 171 1 + 812 146 637 + 673 395 895 + 583 283 510 + 380 482 907 + 953 189 148 + 513 372 455 + 923 505 387 + 525 45 877 + 630 816 797 + 119 776 276 + 540 139 396 + 560 62 596 + 502 97 876 + 431 977 533 + 867 782 484 + 844 409 190 + 46 63 700 + 102 972 421 + 110 987 312 + 58 543 365 + 657 248 64 + 613 658 340 + 605 875 408 + 746 653 401 + 898 980 5 + 449 371 108 + 496 690 91 + 672 657 184 + 816 48 744 + 121 109 689 + 849 88 201 + 982 268 418 + 569 193 589 + 630 267 676 + 690 453 47 + 496 369 792 + 677 412 833 + 95 316 802 + 957 774 647 + 966 842 861 + 233 737 194 + 260 605 424 + 266 274 310 + 874 365 762 + 411 87 704 + 477 356 739 + 554 598 454 + 107 540 64 + 641 631 470 + 444 387 133 + 277 704 401 + 226 869 475 + 299 986 127 + 831 706 60 + 899 442 111 + 414 281 804 + 579 702 597 + 587 807 932 + 755 649 537 + 844 439 295 + 979 235 417 + 821 852 719 + 546 59 716 + 607 889 8 + 851 534 334 + 926 234 50 + 184 710 286 + 152 872 638 + 132 517 712 + 21 970 152 + 801 701 104 + 438 845 30 + 966 454 106 + 37 894 741 + 276 896 923 + 274 6 535 + 339 346 129 + 141 566 488 + 386 418 551 + 160 69 822 + 586 589 634 + 443 633 319 + 466 944 856 + 704 6 944 + 438 937 229 + 47 201 738 + 283 102 389 + 305 168 844 + 760 854 880 + 827 903 750 + 612 138 163 + 658 57 491 + 622 91 900 + 233 144 773 + 113 85 645 + 399 129 190 + 497 49 481 + 85 698 906 + 604 146 968 + 653 767 92 + 130 260 706 + 288 396 267 + 268 625 621 + 6 283 805 + 992 917 363 + 985 716 887 + 900 677 593 + 892 668 406 + 40 259 733 + 572 860 510 + 154 225 479 + 575 750 809 + 938 312 243 + 36 294 461 + 973 150 452 + 226 270 159 + 66 81 520 + 247 346 496 + 58 864 207 + 395 140 524 + 438 901 717 + 491 838 807 + 85 203 859 + 541 931 704 + 764 26 272 + 912 250 107 + 512 278 182 + 910 89 345 + 242 826 85 + 687 889 267 + 112 610 93 + 445 882 337 + 532 746 381 + 689 526 854 + 696 858 351 + 778 798 801 + 255 8 362 + 200 45 44 + 203 50 342 + 520 236 135 + 228 35 196 + 421 236 120 + 689 653 418 + 692 773 233 + 898 438 334 + 32 821 511 + 419 55 31 + 449 776 496 + 617 857 815 + 691 530 996 + 105 959 469 + 403 371 317 + 309 394 366 + 207 449 84 + 902 419 633 + 361 480 733 + 987 318 213 + 722 531 649 + 600 600 12 + 954 968 654 + 436 429 111 + 169 205 606 + 331 227 610 + 943 543 304 + 146 666 412 + 998 544 402 + 459 475 58 + 269 455 55 + 388 98 38 + 243 675 858 + 172 732 707 + 188 120 313 + 959 887 640 + 719 968 101 + 752 83 547 + 477 517 337 + 908 620 289 + 869 878 321 + 738 33 20 + 817 227 913 + 469 260 898 + 138 329 593 + 23 459 967 + 159 339 524 + 681 669 674 + 216 619 673 + 740 360 420 + 302 875 950 + 539 759 635 + 430 548 612 + 239 841 169 + 323 702 113 + 374 615 255 + 457 851 958 + 721 40 270 + 495 842 808 + 745 939 343 + 484 408 610 + 554 739 576 + 539 695 49 + 535 745 493 + 117 88 444 + 554 939 3 + 665 470 581 + 133 876 580 + 268 430 703 + 436 883 249 + 448 823 862 + 3 218 505 + 85 944 264 + 81 994 367 + 673 488 484 + 506 901 694 + 847 914 612 + 426 423 29 + 971 214 741 + 589 221 732 + 20 853 541 + 995 783 448 + 983 854 858 + 446 523 27 + 418 52 118 + 73 566 122 + 438 74 361 + 354 136 981 + 399 183 794 + 888 816 366 + 863 586 878 + 388 254 979 + 430 735 19 + 922 536 47 + 750 686 60 + 545 836 683 + 828 748 301 + 678 297 546 + 493 567 351 + 514 643 523 + 58 191 768 + 418 778 387 + 273 925 613 + 651 160 330 + 859 215 624 + 750 876 36 + 138 836 637 + 906 550 568 + 46 520 876 + 928 79 632 + 400 610 906 + 380 471 22 + 163 624 931 + 822 507 661 + 49 89 414 + 874 593 476 + 958 895 660 + 910 783 691 + 341 147 325 + 751 767 297 + 194 81 335 + 633 808 345 + 726 290 602 + 550 102 207 + 345 194 542 + 217 68 103 + 290 441 451 + 239 464 407 + 987 401 195 + 300 341 313 + 797 409 430 + 471 607 441 + 82 153 439 + 511 578 399 + 634 593 414 + 630 113 776 + 448 679 413 + 346 784 577 + 320 851 645 + 584 584 73 + 603 742 196 + 165 758 361 + 624 23 262 + 626 90 435 + 943 647 702 + 446 598 392 + 993 579 904 + 41 608 924 + 979 209 371 + 654 642 136 + 776 518 520 + 787 369 444 + 518 543 529 + 824 974 110 + 415 582 629 + 651 356 869 + 903 347 977 + 345 269 581 + 549 840 613 + 433 209 891 + 407 630 900 + 509 95 409 + 510 103 362 + 194 69 754 \ No newline at end of file diff --git a/src/bin/day03.rs b/src/bin/day03.rs new file mode 100644 index 0000000..8116acb --- /dev/null +++ b/src/bin/day03.rs @@ -0,0 +1,43 @@ +use std::io::{self, Read}; +use std::str::FromStr; + +struct Triangle(u32, u32, u32); + +impl Triangle { + fn valid(&self) -> bool { + self.0 + self.1 > self.2 + && self.1 + self.2 > self.0 + && self.0 + self.2 > self.1 + } +} + +impl FromStr for Triangle { + type Err = (); + fn from_str(s: &str) -> Result { + let mut iter = s.split_whitespace().map(str::parse); + match (iter.next(), iter.next(), iter.next()) { + (Some(Ok(a)), Some(Ok(b)), Some(Ok(c))) => Ok(Triangle(a, b, c)), + _ => Err(()), + } + } +} + +fn solve(input: &str) -> usize { + input.lines() + .map(str::parse) + .map(Result::unwrap) + .filter(Triangle::valid) + .count() +} + +fn main() { + let mut input = String::new(); + io::stdin().read_to_string(&mut input).unwrap(); + + println!("Part 1: {}", solve(&input)); +} + +#[test] +fn part1() { + assert_eq!(0, solve("5 10 25")); +} -- cgit 1.4.1