From 38b9ad928e51155d90e5251ab42a5b945192d44f Mon Sep 17 00:00:00 2001 From: kageru Date: Tue, 20 Dec 2022 22:14:25 +0100 Subject: [PATCH] Add 2022/20/1 --- 2022/inputs/day20 | 5000 +++++++++++++++++++++++++++++++++++++++++ 2022/src/bin/day20.rs | 55 + 2 files changed, 5055 insertions(+) create mode 100644 2022/inputs/day20 create mode 100644 2022/src/bin/day20.rs diff --git a/2022/inputs/day20 b/2022/inputs/day20 new file mode 100644 index 0000000..dc574b2 --- /dev/null +++ b/2022/inputs/day20 @@ -0,0 +1,5000 @@ +8359 +-9175 +6992 +9836 +2244 +6309 +-6110 +4324 +-6987 +-7576 +-2164 +905 +2426 +-4959 +1761 +4291 +5946 +-1662 +-3357 +-9244 +-6685 +-322 +-6679 +-3654 +-4581 +513 +-9614 +5435 +3647 +9923 +-7851 +7949 +-7944 +4661 +4459 +3022 +9890 +7546 +1601 +9473 +7607 +-5702 +-7078 +3445 +-3596 +3341 +4620 +6623 +-2263 +7684 +5711 +5312 +6657 +2197 +-2670 +-5826 +-7037 +3829 +1172 +2976 +4946 +-835 +-1513 +-5856 +9656 +-6843 +-9510 +5535 +1757 +-9458 +-5625 +-4425 +-4033 +3941 +6608 +1719 +5814 +-2547 +4953 +-953 +-7666 +4414 +4966 +-7076 +698 +-5352 +-7855 +8566 +9862 +5789 +-2985 +-2479 +764 +8301 +-1542 +4836 +-7183 +3346 +-1349 +-7619 +-9658 +-8594 +8993 +7445 +-4662 +4477 +5626 +-9854 +-7350 +-3974 +-4414 +-9436 +-8298 +-5206 +-5498 +-1028 +-8403 +-9133 +8338 +3013 +-9133 +-3572 +-2484 +-6174 +-8387 +-1320 +2685 +-5833 +-8993 +-7197 +-5924 +-357 +-1022 +8939 +2220 +5226 +-2917 +-517 +-395 +-8993 +4423 +1899 +9664 +2841 +-5872 +-7078 +6336 +9225 +-2097 +9257 +4810 +1133 +1883 +5954 +-1398 +-3663 +-2631 +-4190 +-9574 +-4379 +9958 +4992 +-9716 +-6815 +-690 +4605 +-3656 +-8591 +3384 +-181 +2048 +7168 +9326 +9597 +8303 +-1492 +-2180 +-2635 +-2452 +2520 +-4372 +-5141 +7470 +4724 +-4850 +3979 +7787 +-9146 +9916 +-217 +5136 +-3456 +-1126 +5391 +-1421 +9836 +-2177 +9993 +7044 +-675 +1473 +-2034 +-8819 +-2936 +-9463 +3786 +1990 +-2388 +9618 +-3553 +-6758 +8318 +-5206 +8157 +7406 +8509 +-7817 +-4753 +9559 +-2980 +-5155 +2789 +5092 +267 +3842 +-7167 +553 +4850 +-9164 +2898 +3453 +948 +1598 +-7977 +-8152 +1439 +-1903 +-9791 +9993 +-957 +3121 +-5217 +-2469 +-4608 +7036 +-2945 +-1919 +1844 +8325 +-3749 +-7988 +5681 +9229 +-2096 +7477 +1417 +2972 +-2374 +-9312 +8041 +-7867 +-1380 +-3755 +4877 +-4667 +8615 +-1904 +1652 +9063 +-373 +2932 +-8591 +-2936 +4093 +9052 +-4636 +3569 +-2702 +-7524 +1935 +161 +5912 +4349 +-3714 +-8507 +5266 +1961 +-6473 +-2587 +-8059 +5584 +3452 +3791 +-8581 +698 +7073 +7735 +7267 +-5060 +7974 +2487 +9677 +6515 +5753 +9384 +9450 +-6902 +6118 +-9915 +8447 +5485 +-1840 +2180 +581 +-3700 +6028 +-707 +7965 +8814 +-9946 +9864 +-8770 +2575 +2112 +3094 +9083 +8023 +-4420 +31 +-218 +-2749 +-9827 +6887 +-669 +9624 +8172 +7530 +-7145 +-1785 +2692 +-5792 +8588 +9228 +-5615 +3695 +8222 +1771 +-4432 +5775 +-9947 +-6424 +969 +-4148 +8683 +-8004 +-8779 +5533 +3632 +58 +-1288 +5715 +2886 +-6324 +8026 +-2971 +-535 +-6956 +-5080 +-9137 +-2424 +3233 +-1588 +1133 +-1437 +-4947 +5337 +3295 +-1717 +-5998 +523 +2229 +-2947 +-5164 +-5488 +1325 +6058 +4712 +3057 +-3294 +-9714 +6669 +-5178 +9396 +7287 +8473 +2446 +2058 +578 +9719 +7178 +7864 +7729 +-5781 +4331 +9119 +4770 +2661 +6892 +616 +8403 +-9972 +-2097 +6728 +-7867 +-5435 +-5046 +7287 +7394 +-8779 +22 +-3484 +-7075 +-9209 +5949 +-9269 +8099 +-5232 +-3238 +1272 +9806 +-9646 +-2868 +7679 +7382 +-7721 +-5673 +-322 +-9804 +-4210 +-9370 +4631 +-2552 +-9026 +-2907 +4165 +2112 +1218 +176 +-9270 +-974 +6487 +-2758 +2112 +682 +7893 +-2681 +8370 +-7238 +-8300 +1789 +32 +379 +-9943 +-2011 +4925 +8634 +-3499 +-8369 +-729 +3985 +1759 +782 +8133 +-2631 +-58 +-1881 +-4267 +-4625 +6303 +7036 +-6803 +-6468 +-7846 +-7113 +8895 +-3245 +-579 +-9053 +9638 +-6931 +7646 +2936 +-8168 +-3105 +7959 +124 +6042 +9980 +5866 +-1193 +8458 +5831 +-762 +6028 +6933 +-9508 +-6988 +-9372 +-4978 +-8509 +8402 +1713 +-2470 +2318 +4861 +1326 +-3593 +-4255 +-6316 +-9312 +-2969 +-4707 +-8312 +5620 +6155 +-3148 +183 +1943 +-5317 +-4948 +-3729 +3713 +-5788 +3812 +6728 +1711 +6886 +-7669 +5854 +7912 +-9331 +-8057 +-7237 +-1038 +-8847 +-1869 +-1291 +7206 +6930 +-2220 +6273 +9880 +-119 +9807 +-7062 +3845 +3487 +7029 +850 +-3816 +-3593 +9491 +-6534 +-2039 +6688 +7260 +826 +-1229 +7055 +5455 +-1258 +6073 +-7897 +4641 +8890 +-273 +-3585 +-3966 +6665 +-2872 +54 +-9086 +712 +-9910 +9396 +-8876 +6013 +4092 +8104 +-1899 +8168 +553 +9763 +9836 +7795 +2812 +1907 +8554 +8644 +-3651 +2851 +-8403 +-4196 +548 +-2512 +-2758 +1380 +1935 +9968 +-4969 +4607 +-9089 +3980 +-8606 +7971 +-9113 +-5569 +-4364 +-3236 +6746 +8731 +-8403 +-6540 +8155 +8222 +-4541 +-1224 +5875 +-5125 +-1367 +-1350 +3582 +-1214 +7930 +-7770 +-421 +-8434 +-1104 +8325 +-3215 +-5352 +2422 +-3124 +-3782 +584 +-4752 +-9244 +-8700 +-6688 +9091 +-376 +-7855 +-1954 +4627 +6092 +-5216 +2910 +-835 +2427 +-8180 +5618 +-4605 +4704 +-5349 +796 +-5661 +-2144 +7821 +1347 +-4617 +-8597 +5644 +-5692 +5905 +-5874 +-8214 +-1511 +-9574 +-649 +4064 +1047 +5537 +1055 +-2184 +4028 +-5413 +-9786 +761 +6181 +-2641 +-5899 +1860 +-1732 +2718 +-6876 +-8732 +-7755 +5757 +-2224 +2322 +-5428 +-2792 +-5222 +2858 +-900 +-5565 +6181 +4143 +2595 +-2165 +-8881 +-7033 +6697 +6576 +-3049 +2974 +6728 +1047 +-8121 +5101 +1233 +7438 +-8767 +5529 +9412 +7365 +-6952 +4757 +3849 +-2015 +-3430 +8691 +8171 +6891 +5529 +-952 +-1986 +4173 +-3753 +6357 +5637 +27 +-9526 +-5191 +2727 +6803 +-4030 +-3843 +4963 +2617 +-1446 +-9178 +-8447 +7567 +2446 +-8245 +8915 +-9146 +6112 +-5270 +-3472 +-6412 +-8886 +9916 +-2853 +9943 +2998 +6357 +3893 +2864 +-5264 +-7312 +135 +-5299 +8325 +2055 +-8630 +-2521 +9804 +-8658 +-4432 +-8343 +5392 +1457 +1268 +-2906 +5700 +-3342 +2753 +-3055 +-7266 +4978 +-5128 +-6425 +1049 +9257 +2422 +-2672 +-2214 +-2729 +8397 +-4756 +2589 +-5833 +7259 +6019 +2507 +6801 +-5586 +-3732 +-9527 +3271 +-4449 +3648 +2295 +-9722 +4757 +-8325 +-3804 +-1126 +5316 +3821 +-5192 +8001 +5522 +-2639 +4649 +2421 +-5142 +-9526 +-6646 +1050 +-8456 +5254 +9603 +9035 +1190 +969 +3025 +-3965 +-66 +-4026 +9274 +-9514 +-5156 +2671 +6215 +6278 +-6825 +-5519 +-2163 +-1421 +2699 +-7399 +-3796 +631 +9355 +-7484 +198 +7682 +-7526 +-7312 +-3541 +-3755 +-2281 +-1338 +4390 +-8431 +4954 +-24 +-9892 +-9145 +1102 +-3249 +-7619 +-635 +2518 +4872 +-9114 +2851 +-5619 +-2116 +-2180 +-8319 +-8878 +2561 +-1568 +-251 +6368 +-5758 +7432 +-5098 +-8505 +4322 +8700 +8496 +-6697 +9355 +9724 +-7923 +5113 +2058 +-4521 +9946 +-3714 +-7430 +9724 +8040 +5139 +-18 +1544 +4445 +3171 +-7249 +4170 +-4910 +-7076 +3691 +2071 +-3808 +7748 +7528 +-4947 +2097 +-7559 +-1168 +-5950 +2167 +4282 +4003 +-4814 +-430 +8004 +8420 +-9906 +-2596 +8310 +328 +1182 +5027 +-5548 +9895 +4828 +3121 +-5833 +9806 +7458 +2996 +2443 +2866 +7685 +5548 +-6782 +-4712 +3756 +-9831 +-9514 +-7036 +-2025 +6252 +3898 +8567 +-1153 +-8402 +-57 +6658 +-195 +-5197 +6019 +213 +-3358 +3957 +8644 +-936 +3189 +3487 +7273 +-4634 +-5712 +-9 +-9948 +-7301 +4287 +6584 +-2783 +-8191 +6668 +-5455 +3252 +-2638 +1624 +-2524 +1154 +6624 +-1273 +2625 +7693 +-5478 +9633 +-9972 +-657 +-1875 +-3109 +9880 +5622 +3039 +-1628 +3947 +-8791 +-1831 +9515 +-8270 +-9125 +683 +-465 +3011 +-7702 +6404 +3090 +-2215 +-6157 +-2243 +9664 +-3913 +6710 +3823 +7044 +-2914 +-1293 +-2619 +-5984 +-3091 +-6096 +-2344 +-6247 +-9947 +8403 +9716 +9357 +-1033 +-8385 +7225 +-9575 +-8451 +1400 +5074 +-3869 +8182 +-1322 +-8608 +-2048 +1285 +1857 +-4689 +-6022 +385 +5368 +-9036 +-4887 +-804 +-9073 +7197 +-8934 +-4773 +-6938 +-7944 +-3976 +-3925 +-8427 +4717 +-4778 +697 +-1693 +-3366 +-3651 +8397 +-4567 +8147 +-8214 +8660 +-535 +-1536 +-1658 +-5781 +-335 +-4417 +2184 +-1510 +-5046 +380 +-7994 +-3828 +-2529 +-7271 +3293 +2378 +2446 +5312 +7829 +9699 +3171 +-7867 +3708 +8040 +4286 +-2196 +5208 +-7193 +2108 +-6147 +-2048 +-4415 +412 +-4353 +-3216 +-8874 +-9031 +905 +-622 +8907 +115 +5624 +-5702 +-9842 +5328 +7678 +-3615 +-8335 +-7397 +6623 +-7797 +-2036 +6250 +1319 +-491 +-4524 +1506 +-4989 +1581 +-9579 +849 +-4461 +7968 +-2575 +-2936 +6371 +-1546 +-4812 +-4216 +-821 +-5653 +-305 +1302 +9671 +553 +-2180 +1050 +1233 +3011 +-8573 +-8326 +7677 +5960 +9334 +-1653 +7428 +-9956 +2906 +7465 +-1615 +-2165 +8152 +-6373 +8667 +1240 +-1666 +5490 +3039 +-5045 +-7074 +8677 +8712 +4474 +2356 +-8006 +-7454 +-3490 +9622 +5027 +-539 +4529 +-5563 +8152 +700 +39 +-6815 +9675 +-9138 +-171 +-1736 +9073 +-8897 +-3126 +-4570 +-7033 +7445 +-7352 +-6037 +340 +9812 +6470 +-7566 +930 +-3648 +-6738 +-8490 +2992 +-2432 +-6471 +8490 +-450 +4847 +3916 +5605 +9318 +-7475 +9477 +-3866 +8099 +7092 +9919 +-9714 +3473 +1619 +1476 +6857 +-3780 +2853 +-6716 +-3619 +-7562 +8579 +2762 +3804 +7175 +-8558 +-3068 +6801 +-2493 +1334 +4630 +5123 +5907 +-4327 +507 +7293 +550 +2595 +3524 +8696 +-7348 +-3893 +1991 +-4265 +-1142 +571 +4704 +-1091 +-1270 +-1041 +8440 +3972 +-5390 +7764 +7465 +-1022 +6074 +8601 +-3068 +7232 +9612 +20 +2399 +-8745 +9993 +-8923 +1272 +-9231 +-6243 +-9891 +-5336 +8221 +8697 +1212 +2006 +-5279 +-5444 +-7249 +-3780 +-5007 +2661 +8877 +6861 +-3245 +722 +-1561 +-3149 +-5923 +-9046 +9184 +1744 +6431 +4181 +3080 +-1982 +-9061 +-2469 +-7665 +-3405 +6188 +6215 +-545 +-333 +-9874 +5308 +-2608 +9283 +5132 +9279 +5669 +-6354 +391 +9872 +-115 +-6350 +4205 +7339 +-8934 +9691 +-1955 +7589 +-5633 +-99 +-3311 +429 +-9969 +8533 +5758 +6864 +7766 +4205 +-3732 +-8608 +9768 +-4590 +3406 +5330 +4826 +-9147 +-2893 +7828 +2169 +2435 +7128 +-9650 +7613 +2219 +4737 +4130 +9872 +975 +973 +-7202 +3585 +-2004 +3389 +-7829 +-2575 +3049 +-7678 +2783 +-2079 +7736 +5938 +-2180 +206 +-9146 +4566 +8978 +-1296 +-4937 +5700 +-7401 +-159 +1757 +9860 +4945 +3583 +7615 +4074 +2946 +7827 +-8403 +-5645 +-9957 +-8101 +-4742 +3180 +773 +1997 +5546 +-4555 +-6524 +-3230 +8615 +9884 +-4913 +-5891 +4855 +5138 +9181 +5889 +-1653 +-8238 +3211 +8005 +-6512 +1103 +7479 +-3004 +8407 +-3093 +8900 +5571 +-8558 +5537 +-7651 +3224 +2409 +9050 +-2844 +-1561 +7339 +-6567 +9423 +-3409 +9293 +6892 +-1597 +1035 +-7994 +-2710 +-5075 +-9822 +7457 +8218 +-5553 +-662 +2686 +845 +-7308 +-7391 +-4239 +825 +-2078 +-1906 +5988 +-5954 +1844 +8925 +-4136 +-5478 +7807 +5336 +-3250 +8814 +-4392 +9542 +-2552 +85 +-4635 +935 +-7526 +-1489 +3790 +-41 +-41 +2936 +-9826 +6269 +4474 +3090 +-476 +7388 +-4383 +1307 +8521 +128 +-1994 +3127 +-5446 +-2484 +-2783 +-4773 +9724 +4920 +-1581 +3983 +3323 +-8600 +-9728 +1779 +-8358 +-2066 +-3635 +-2596 +-8272 +-7175 +-8035 +-2823 +3815 +-6806 +-5950 +5260 +-9716 +7652 +-3576 +5909 +-900 +8026 +4143 +7774 +-6425 +-6106 +9473 +-9969 +5238 +536 +9417 +7111 +6096 +-352 +1219 +7339 +7444 +6112 +2931 +5707 +-3307 +-2627 +-5981 +-3212 +-2614 +-8284 +-2661 +-9371 +7222 +-9486 +-1890 +-6214 +-882 +-7526 +-4143 +-4152 +-7566 +-7607 +-2374 +3322 +6482 +-5470 +4975 +-3697 +1234 +-1904 +5938 +3791 +654 +9229 +-7362 +-1831 +-211 +-8184 +-2861 +-9671 +4625 +-267 +-8794 +-1664 +-4868 +-3363 +7542 +-4991 +-3124 +4723 +7227 +-9722 +5166 +-4433 +5136 +-5975 +5312 +641 +7693 +-9654 +-8473 +-2202 +-6832 +8487 +-4707 +5317 +914 +-5441 +4477 +-5199 +-1661 +-1593 +-1005 +-5925 +412 +9622 +-2850 +-3804 +-2366 +-3889 +-8700 +-9972 +-9140 +-720 +-143 +-7867 +8542 +2318 +6853 +-655 +-7760 +2317 +9802 +-6813 +-9677 +-3105 +-521 +-3328 +4255 +6353 +2414 +-8785 +-6768 +7689 +-1376 +-7825 +-4186 +1302 +-8510 +2392 +5858 +-2263 +2412 +4518 +5218 +-1762 +-1262 +9812 +811 +4128 +53 +-6511 +-3974 +4073 +9417 +-8298 +5013 +2953 +8131 +-680 +2477 +3790 +-8013 +-2839 +8692 +8375 +-8627 +3999 +-8641 +3163 +-9332 +-1043 +-4112 +-1168 +-1796 +8397 +9553 +-8451 +-5389 +4810 +4605 +4130 +9028 +-6035 +1047 +4714 +8397 +507 +-4863 +-3734 +-4777 +-8389 +9593 +-6108 +2798 +5242 +7429 +-463 +-8874 +-7391 +-4117 +359 +5709 +334 +-1730 +6436 +9794 +7439 +-9947 +8158 +-6110 +-5079 +-2162 +-7036 +1906 +-5623 +-782 +8017 +-1033 +176 +8118 +-2672 +-7036 +-2471 +9696 +-7817 +-1977 +-9168 +-2708 +5478 +3969 +1425 +-3792 +-5793 +-7721 +9403 +-2957 +1282 +-4188 +2141 +-624 +26 +2376 +-3329 +-376 +-7909 +585 +6290 +7137 +-7036 +7300 +-6649 +-2585 +3567 +6295 +6320 +-2165 +6301 +-3147 +2442 +-1506 +-759 +1577 +-3420 +-5297 +-9834 +-9125 +316 +8680 +-2180 +-1320 +-3915 +191 +6887 +647 +-1320 +-25 +-3579 +6967 +-5013 +4415 +-3974 +-9046 +-7586 +2789 +-1071 +6096 +-5310 +-6356 +-5205 +6886 +9554 +1851 +7761 +13 +-8298 +-3091 +-9563 +-7156 +-2630 +-3913 +-6333 +-7526 +4737 +1676 +-5586 +-2621 +1047 +2087 +-6473 +-4285 +3708 +-3294 +4806 +3821 +-8626 +8697 +3836 +7416 +-9526 +5376 +-7072 +-5218 +-8626 +4254 +7953 +2241 +1891 +-1678 +6602 +9327 +-5225 +4700 +-3049 +-6233 +-6501 +7892 +-9232 +-7863 +2507 +-6954 +-1189 +6968 +5188 +7333 +2487 +-6716 +-6700 +-7037 +-2470 +-3651 +-7556 +6606 +-5718 +5887 +5393 +8746 +-2514 +-5277 +-5603 +6331 +1042 +-3941 +6270 +6110 +-203 +-4613 +-350 +-2794 +-8993 +-2788 +11 +3023 +-8993 +9349 +-357 +1999 +-9000 +-7984 +634 +1765 +-7983 +-5307 +-3428 +-3710 +1629 +-3717 +-1707 +7268 +1888 +-7540 +8071 +2798 +-7227 +-5437 +938 +8381 +-8745 +-8828 +-9688 +-8854 +6056 +4905 +-4998 +-6055 +-9268 +-3803 +704 +-2601 +-3593 +-2456 +-2115 +-5138 +-8069 +8712 +198 +6424 +-2024 +-4063 +-5205 +-2861 +-8358 +-4357 +-5909 +6080 +2923 +-2621 +-6578 +-3155 +-4431 +-2543 +-2731 +-8260 +560 +-328 +6036 +3316 +8582 +-2270 +5506 +5014 +-2474 +3638 +-463 +-7773 +-5547 +3349 +2507 +-1184 +7459 +-6859 +-1129 +7217 +-1324 +659 +-2813 +6608 +3 +-5145 +-9877 +2488 +4158 +6368 +9911 +-2827 +28 +5383 +3657 +-3613 +-232 +4987 +-6855 +-2521 +-6840 +-3046 +1043 +-3863 +2445 +3325 +-1349 +9188 +-9593 +-8346 +-6686 +2488 +-5849 +-4050 +-3089 +4659 +-1524 +-3124 +-3097 +-1532 +7685 +2462 +261 +5388 +7448 +-4571 +3771 +4133 +3485 +-5007 +2705 +2561 +-2474 +-75 +3914 +1660 +-2690 +-9563 +5473 +-9289 +-5603 +-580 +-2634 +-629 +-8033 +9571 +-5608 +-2369 +7223 +-2409 +4434 +-4469 +-732 +5151 +-4327 +955 +-1388 +8419 +-839 +634 +-3371 +1974 +-9125 +7408 +4391 +7684 +5638 +7447 +3293 +8132 +-1966 +4055 +927 +5006 +2908 +-1380 +7672 +8661 +-5920 +-497 +557 +-9976 +5073 +9503 +4790 +1414 +-7544 +9988 +-5999 +-5899 +-2608 +-2249 +-8633 +-6876 +117 +6484 +2353 +3313 +1137 +-7638 +8097 +-9941 +1486 +8419 +9776 +6191 +1153 +-8934 +802 +-5579 +-6345 +8254 +6390 +118 +-3474 +-4548 +4863 +-2783 +4567 +-7014 +-2028 +3483 +-1947 +-2305 +-4240 +5411 +-125 +-2562 +-5757 +3496 +-609 +-8533 +8209 +5646 +-7001 +-1091 +1431 +-416 +-9729 +-3695 +7679 +-8756 +4797 +381 +-5145 +857 +-988 +3955 +-5880 +9435 +4479 +2936 +2713 +-2054 +-7621 +-7197 +9488 +702 +7063 +-4896 +9719 +432 +-5016 +3368 +6866 +3629 +9456 +1212 +7678 +-1945 +6949 +8571 +-3074 +-4190 +-5424 +-3490 +-5797 +4166 +-9125 +-1977 +-5087 +5880 +-3003 +976 +975 +9566 +4963 +9843 +2660 +-4208 +8846 +7382 +-3686 +-8878 +4621 +-4375 +-3196 +2332 +2561 +-7180 +-2025 +3120 +4324 +4631 +9279 +-855 +-9197 +4205 +3122 +-7033 +36 +-7893 +-6273 +6857 +4744 +-5612 +-6353 +1433 +-2488 +-7930 +1974 +1725 +-1448 +6470 +-4470 +-5619 +-5191 +-4544 +360 +1163 +7069 +6582 +-2880 +1130 +1624 +8060 +7425 +-223 +-9717 +948 +-5591 +5154 +8115 +-8730 +2028 +773 +2003 +-1804 +3841 +8742 +7663 +7457 +-8149 +9822 +-9702 +9208 +9474 +-2281 +316 +2338 +5117 +-1229 +7491 +905 +-9830 +-923 +-7241 +1617 +-5336 +-1276 +5997 +2662 +-8961 +5345 +-3002 +-938 +1350 +3807 +4987 +6043 +-5410 +-277 +-52 +-323 +-1629 +8251 +-6188 +-5081 +-3269 +-8869 +-1448 +-9141 +-7588 +7260 +9327 +5885 +115 +-7294 +-4603 +2305 +7384 +-8180 +-1483 +6281 +8857 +5092 +2589 +8074 +9864 +-4077 +-4541 +-7409 +-8451 +-841 +119 +3813 +-6613 +-7076 +-3732 +-9711 +8667 +4743 +3573 +-6209 +8862 +-7678 +-1865 +2167 +6704 +-6292 +-2054 +-4239 +4804 +3999 +-6475 +-2800 +-1376 +-7817 +-4407 +-475 +6781 +7348 +891 +213 +-3806 +-4673 +-3059 +-2861 +3198 +6676 +-9654 +2996 +-3712 +5439 +-6815 +-8768 +-8559 +5582 +-2585 +-5350 +-4115 +-3523 +7828 +-3866 +507 +9182 +1386 +9780 +-8602 +7586 +3466 +-4100 +-3751 +-7395 +-4414 +4218 +-8763 +209 +-6129 +9374 +-8194 +280 +-8885 +-5194 +6658 +3647 +-7678 +-6208 +5405 +1135 +9462 +3440 +-3034 +8292 +5638 +3120 +8890 +-1352 +-6321 +5751 +-7866 +-3478 +3414 +560 +-1723 +-1976 +-4616 +-1865 +825 +9948 +7217 +-2146 +1835 +417 +9654 +-1629 +-9501 +8831 +6680 +616 +-9584 +-1133 +-2305 +-5781 +2936 +3931 +-5702 +-7611 +355 +-6938 +-8595 +4977 +-1126 +9357 +3057 +1135 +2728 +4120 +-5891 +6174 +7761 +-1465 +-6209 +6075 +-8508 +-6356 +-6298 +5980 +-7394 +641 +-323 +4477 +1642 +2915 +5767 +-2303 +4181 +-300 +8846 +-7204 +423 +958 +9197 +782 +4235 +1149 +-1482 +-8994 +-1446 +8157 +-9191 +5515 +3943 +4439 +9436 +-8913 +-2758 +-4449 +-1727 +1308 +1160 +-8352 +-9417 +-9005 +-6653 +-2058 +-6815 +2844 +765 +4406 +-1279 +3988 +-5587 +5447 +203 +-5371 +2346 +6784 +4477 +-934 +-2769 +-629 +391 +527 +-3082 +5368 +5634 +-6758 +4130 +4437 +2576 +-3663 +-5826 +1005 +-6945 +-7028 +676 +-8152 +-923 +-992 +1417 +6353 +2932 +2906 +-1288 +4240 +-9179 +8938 +-9170 +9805 +8629 +7480 +7446 +-3256 +-2350 +7863 +-6751 +7650 +-2631 +-1172 +-5502 +-7523 +-2092 +9344 +-5439 +959 +-3951 +-6231 +-7751 +-5727 +-5387 +4617 +4539 +-6121 +-2804 +-6011 +-7806 +-6716 +7042 +-3031 +-1757 +-4357 +-8028 +7806 +-7976 +-2800 +-5737 +7137 +6110 +6822 +-8121 +4989 +-8314 +-6330 +-3187 +-6022 +2295 +4649 +-9824 +-392 +-6124 +-4373 +811 +3778 +3090 +-3025 +-7313 +-301 +-9063 +8335 +1102 +-7330 +-1610 +-6004 +-54 +3574 +4513 +2569 +2491 +7780 +2864 +-7751 +9400 +-5936 +-6882 +-3238 +6864 +-6172 +6591 +-683 +-3624 +9110 +-4880 +2578 +6682 +719 +2376 +-3560 +-4322 +-1689 +947 +-2609 +-2184 +6479 +-782 +9439 +-3031 +-3787 +-4047 +8743 +-624 +1585 +1218 +-4308 +7478 +-7837 +1183 +1727 +-8448 +-7506 +7628 +5763 +-1927 +4399 +2734 +-5312 +-2370 +-6951 +1615 +-8784 +-9706 +1035 +8198 +-171 +5831 +-6223 +-8631 +9279 +634 +-2527 +-1324 +1680 +-7350 +-3483 +-5371 +-815 +-5224 +-7611 +-8672 +-545 +-6726 +-8451 +6199 +-1889 +1031 +6303 +7405 +9719 +2383 +4462 +-4197 +-8391 +-8889 +976 +6247 +-3546 +9724 +67 +-7453 +1850 +-1085 +-1831 +-1942 +-4406 +-4991 +-657 +3826 +8511 +-527 +-2918 +-3347 +-6327 +9270 +6688 +9278 +1659 +6260 +7405 +354 +8534 +-4440 +-5632 +212 +1537 +2651 +3299 +2241 +3427 +-5519 +-691 +7780 +-5998 +-2105 +25 +1741 +4231 +-5175 +9326 +8133 +-1376 +-3093 +-7582 +1272 +-7760 +-5632 +-4493 +-6181 +9083 +-3612 +3207 +-2560 +5971 +118 +-5586 +1102 +-3734 +-7421 +-223 +9906 +-7607 +-4778 +-8043 +899 +-5039 +715 +-7412 +7868 +-1025 +-4839 +-236 +4173 +6357 +8014 +-4573 +-2281 +-7604 +5735 +3511 +-2898 +5836 +-2788 +8644 +-8369 +-7113 +-8211 +-9185 +4595 +5190 +1084 +-9259 +-4420 +7128 +9558 +-6114 +-2756 +-6412 +-5211 +2660 +6212 +-4943 +-8035 +336 +3625 +-8803 +-561 +-7394 +-497 +-7564 +-2676 +-200 +-5502 +5436 +-301 +-4498 +-8828 +-5498 +7168 +6581 +6752 +-9786 +-5502 +-5309 +-5793 +6744 +4331 +-5738 +-5863 +2460 +-6232 +-1183 +-8738 +-8299 +634 +-8783 +-2617 +-9991 +2985 +4887 +-1665 +6101 +5388 +6892 +6435 +-3294 +1659 +-3915 +-7152 +-3948 +-2182 +-7454 +-4760 +-8534 +-5362 +2164 +355 +6004 +131 +4420 +7981 +77 +4927 +2199 +711 +-3055 +-6355 +-4555 +-5482 +8943 +-1321 +7595 +4440 +-5896 +-2376 +4936 +-3009 +-8608 +5310 +7448 +2552 +9901 +6825 +-8465 +1031 +-5223 +-6350 +8715 +-1885 +-8784 +-5205 +6308 +-8927 +-9459 +6290 +3177 +-4050 +-9863 +811 +-8278 +7413 +-2547 +-3038 +3949 +-5350 +-57 +6975 +-1316 +537 +-6739 +-9487 +2412 +-3663 +-5145 +-4831 +-8067 +922 +1859 +-5936 +8566 +-391 +-4414 +-5905 +-8110 +8226 +415 +6040 +1882 +1681 +-7817 +2544 +-4613 +-2809 +9732 +5548 +-2617 +4316 +-5206 +-1486 +8660 +1757 +-8279 +6937 +-3648 +-7556 +22 +6901 +7193 +-6355 +-6484 +-4781 +8548 +-3715 +-8971 +-3996 +8938 +2945 +-2729 +8340 +5605 +-3804 +-7271 +-8803 +-430 +6535 +9451 +-2462 +443 +6555 +900 +-5990 +-7540 +-977 +7254 +2853 +3236 +9125 +2945 +2930 +1694 +-7063 +8873 +9622 +-4253 +-3245 +1138 +-238 +9916 +8101 +-1960 +-3217 +5111 +-5181 +1825 +-6188 +-2687 +-8704 +-8631 +-337 +3381 +-9161 +636 +-727 +-7619 +3855 +-1489 +9573 +-3795 +-2424 +-3980 +-1502 +-6604 +-9872 +9197 +229 +-8631 +-5823 +4502 +3084 +2169 +-6064 +935 +-6587 +3733 +-7330 +-9950 +-3097 +-6348 +1862 +-5442 +-1432 +-825 +9353 +-7526 +6584 +-9146 +-5478 +-7448 +-9690 +9542 +951 +-1481 +-357 +8765 +-3646 +1857 +3195 +-9876 +-9117 +3708 +7228 +3381 +8282 +-4924 +4903 +2987 +4964 +-1973 +5675 +-7448 +-4489 +-4378 +2445 +2504 +2947 +1310 +-5137 +-5504 +2684 +-6216 +-7249 +-5643 +-1173 +3845 +8018 +-4419 +-9334 +811 +9155 +-5206 +-6457 +-4378 +-9061 +-5526 +3790 +-1803 +-3556 +-6350 +-9036 +-4689 +-4391 +-3195 +-4693 +-9140 +-1511 +-2263 +867 +-7641 +-2176 +-6458 +2376 +9826 +-916 +6347 +-1184 +5081 +-1871 +-7506 +-1497 +7681 +-1319 +-476 +-7990 +9724 +6329 +2667 +-5122 +-8764 +-6602 +-4253 +9769 +9053 +4943 +-4285 +1212 +9864 +-3039 +-1042 +1695 +1211 +-1284 +-6742 +-6815 +-5144 +-263 +-510 +-6782 +1347 +3046 +9479 +-2180 +6441 +-7036 +-8754 +-7055 +-4432 +5007 +-5428 +-5132 +-2695 +5613 +4490 +-6272 +-624 +9374 +8925 +-3904 +1604 +-7408 +4997 +1689 +110 +2041 +26 +-3687 +7225 +3977 +3538 +-9198 +-4169 +9400 +-3838 +-627 +-6486 +9585 +-3296 +8939 +-3366 +-2138 +-4394 +4380 +-3695 +7433 +-7421 +975 +-3817 +-4863 +9837 +-9665 +-41 +-9500 +9071 +9576 +930 +-4347 +-6343 +8251 +8017 +5127 +4303 +-9262 +-1513 +-5138 +8132 +507 +3823 +-6111 +-7480 +-6002 +9050 +-689 +7635 +-3846 +-52 +7073 +-2695 +7989 +-6292 +-8578 +1828 +-5968 +6525 +2042 +4806 +7912 +-1437 +-4632 +-2280 +3815 +-2585 +-3347 +9523 +-6958 +3886 +6080 +-7543 +-3059 +5738 +-5169 +9769 +9420 +-8180 +-6122 +-9185 +-4746 +-1369 +-6749 +7339 +8151 +-9697 +9958 +1311 +1614 +3339 +8661 +3667 +4332 +-8069 +5560 +7089 +1853 +-273 +1681 +-3685 +-9130 +-5649 +4414 +-6996 +-4431 +5679 +5537 +-9245 +-2163 +4978 +-699 +-206 +5348 +-7173 +-2682 +-6505 +-1051 +7845 +4275 +5457 +-5007 +-3252 +-352 +5209 +-3042 +6512 +1002 +-436 +-3420 +9053 +5832 +-572 +-7421 +7042 +5123 +-2079 +6378 +5972 +5006 +-6952 +7764 +6019 +-2021 +-9911 +1172 +7965 +145 +616 +-1022 +-2429 +6243 +4517 +-1505 +-3732 +2879 +8891 +-1869 +-9369 +-7876 +-2537 +-5962 +8132 +2096 +9388 +-2621 +549 +-4880 +-9646 +7701 +9465 +2056 +2511 +4095 +-434 +1704 +3690 +6077 +4502 +9860 +-9231 +-2303 +-5191 +-1027 +3991 +5379 +-1149 +-8152 +4007 +-3217 +3316 +-8849 +-5607 +-8723 +-6055 +5379 +1905 +-153 +6074 +-5181 +-3974 +-2161 +1335 +9332 +1335 +9710 +5330 +8795 +-870 +-6785 +4003 +-8547 +-4868 +-7113 +-7412 +-2798 +2356 +9989 +-6022 +1730 +8460 +5772 +1844 +-4383 +1242 +5836 +-8908 +-5046 +5132 +1652 +-3712 +-7829 +-7377 +-8258 +5051 +-6355 +-6246 +-2543 +6142 +8782 +4595 +-9179 +-6754 +5545 +1099 +4331 +-8823 +-3179 +-1899 +-9822 +-5770 +5376 +-2474 +-2386 +-177 +-8785 +4567 +1746 +3957 +-7678 +9729 +8425 +-4078 +-6275 +6303 +-2370 +-8539 +-7274 +4782 +-8389 +-8507 +2985 +7140 +4483 +-7465 +-7061 +-9692 +-3082 +-5236 +-9055 +-4848 +-8524 +2376 +-9722 +-9527 +-4072 +6100 +-936 +-1255 +8665 +1933 +-5962 +-629 +-8143 +9613 +2169 +-5225 +-9508 +2072 +-6790 +-5905 +2812 +-6025 +-7167 +2463 +-2923 +-1960 +5405 +-4988 +3823 +2851 +374 +802 +-7384 +-4898 +5688 +-1514 +-1031 +-8608 +6189 +-3384 +-5191 +-1932 +-3204 +-2078 +6682 +9092 +-6910 +-6188 +-5887 +4617 +-5045 +2324 +-8754 +-6002 +5308 +-9198 +1010 +-8332 +-3547 +5899 +3436 +-8346 +4945 +6360 +5234 +1976 +2802 +6689 +-4962 +4763 +755 +-3715 +-7871 +-8640 +-8886 +3117 +5735 +-7604 +4409 +6270 +704 +-8893 +9346 +-2621 +-8525 +248 +-4558 +-8681 +3691 +7284 +-5876 +-1421 +-1444 +-8149 +9482 +8357 +3171 +1350 +3120 +-2552 +5304 +-4284 +-2025 +-7259 +6682 +-7867 +5485 +2222 +-4707 +-9526 +-8347 +4888 +7764 +-2563 +6714 +-5205 +1422 +5764 +5601 +-1329 +-3700 +-7075 +4363 +-3646 +8554 +-426 +-616 +8216 +-6751 +-4045 +-8142 +-5792 +4350 +1883 +4298 +176 +-2536 +9187 +1725 +369 +-9175 +-6626 +3235 +-7994 +5933 +3040 +-9486 +-7121 +4083 +1537 +8628 +-7290 +2667 +-6269 +7730 +369 +-7448 +-9546 +-2547 +6591 +-2163 +-3168 +1491 +-5596 +-8312 +-8000 +6674 +-3956 +-4349 +2212 +-7582 +-7683 +-7893 +6484 +3914 +2416 +3726 +1850 +1587 +-1291 +1233 +-8035 +-7376 +-265 +-8927 +-3245 +-2764 +-835 +-7069 +304 +-720 +-54 +-705 +3017 +-545 +9110 +9181 +8399 +-7769 +-7412 +8891 +-3385 +-3 +3188 +166 +-3784 +8407 +6710 +-8312 +-8833 +9028 +5692 +8160 +9076 +-1849 +-8770 +-8658 +-7593 +640 +5880 +-4931 +391 +6299 +4669 +4822 +5320 +-5470 +6100 +2406 +-7665 +-3305 +-2422 +381 +-1489 +4275 +-3126 +7535 +-1737 +4615 +8234 +4699 +4987 +6852 +7225 +713 +-9198 +9683 +2293 +-4293 +-3490 +8638 +-3824 +3941 +-260 +53 +-3571 +-5637 +6250 +-4183 +6759 +-1319 +6004 +7260 +8283 +-2880 +-9714 +-6688 +5023 +-4353 +4153 +3491 +-8331 +-6806 +5455 +396 +-8421 +-52 +-923 +-471 +1335 +-5030 +-8004 +-8287 +5917 +8575 +8596 +2888 +1214 +-1321 +952 +6911 +5601 +5992 +-5497 +9196 +9862 +-284 +2159 +-4200 +4723 +-9854 +-3012 +-6906 +-5569 +-901 +-8240 +-6880 +-8934 +-170 +-1745 +3103 +-7825 +-3495 +-8737 +154 +5024 +-953 +-328 +7444 +671 +-7932 +-4888 +7518 +-209 +9123 +-4470 +-8014 +3304 +7344 +2287 +-7907 +5463 +-3561 +7008 +-7701 +9028 +3926 +-9842 +7359 +-9112 +9382 +-9177 +5909 +-8934 +-4063 +7210 +819 +-305 +-9759 +-3808 +8325 +5932 +-5205 +3077 +-3592 +8136 +3594 +4420 +8957 +-470 +-7259 +-5443 +-7101 +331 +7908 +-5217 +5310 +-3123 +3733 +2219 +-9966 +9863 +-7378 +-8192 +-4331 +7093 +6112 +5019 +-4724 +-609 +1311 +9071 +2964 +-4619 +-7548 +-1906 +-2193 +6309 +7893 +-462 +8366 +8425 +-5425 +5312 +6492 +-2206 +-1506 +-8630 +4508 +-9417 +-957 +-8369 +2845 +3271 +-6261 +9537 +8855 +9901 +9954 +-861 +-4212 +-1597 +5679 +288 +1530 +-8983 +-509 +-6774 +7766 +578 +-526 +6901 +-624 +-3069 +-7837 +-5962 +4534 +-8034 +-3912 +3690 +-3623 +-1184 +-7443 +-4016 +2342 +3489 +6141 +-9177 +-1531 +-7120 +-957 +-3074 +-5164 +-2548 +9163 +2873 +7582 +2659 +-557 +8046 +2763 +-18 +2749 +-9822 +9586 +9071 +-4375 +5079 +-817 +-2350 +9374 +2968 +-8403 +3322 +1212 +9613 +2307 +955 +9682 +-490 +4581 +-8213 +-1591 +-4947 +8914 +2169 +228 +4003 +3594 +-4030 +-3553 +-5082 +5613 +-4045 +-5854 +223 +4349 +781 +-5747 +9753 +-282 +5217 +-7806 +6215 +5100 +2883 +8567 +-6024 +-7797 +756 +5726 +-6382 +5821 +7933 +677 +9843 +-3497 +8192 +834 +3489 +-4831 +-1717 +-8064 +7761 +5689 +4995 +4402 +-6567 +6825 +9826 +-6972 +7323 +-6716 +-3749 +-3481 +3667 +-2577 +-4284 +6887 +-4867 +7339 +187 +4823 +3338 +3649 +-3622 +6249 +3708 +7607 +-7532 +6120 +700 +-2898 +-1111 +-2300 +-3149 +-424 +3160 +3204 +54 +2662 +-2136 +7821 +-754 +2106 +4967 +9890 +7284 +2870 +158 +1762 +8310 +-7620 +-2911 +4042 +-4944 +-5127 +-5319 +-4188 +1084 +6879 +-6243 +-9472 +-9043 +9057 +-6484 +5738 +2015 +3823 +507 +2290 +-1142 +6693 +1964 +149 +4095 +-7969 +-6716 +9939 +4165 +2504 +5447 +1082 +9197 +2052 +-2635 +-3684 +-7033 +6149 +6100 +-9853 +-1815 +-9834 +2373 +-6004 +-9039 +3785 +-2067 +-7088 +8257 +1530 +-2639 +6851 +5409 +162 +-2257 +-2255 +9916 +-2399 +9759 +-2823 +9671 +-1419 +4317 +-8925 +-1184 +-6244 +1363 +9109 +7832 +4043 +7465 +-2917 +-4364 +-8272 +8744 +5675 +-8597 +-953 +8857 +-9000 +-5064 +9705 +-9142 +-1613 +-3031 +8272 +3819 +-3044 +7382 +3123 +684 +8701 +3009 +354 +2387 +8352 +-1058 +-9873 +-2630 +9606 +5293 +7459 +-6991 +6744 +-4216 +8087 +-5998 +-6660 +8135 +6857 +-5478 +-1632 +8652 +-9059 +-622 +2056 +-8443 +8357 +8162 +-2345 +-6969 +760 +-6697 +-408 +-9051 +-3484 +2487 +-7526 +-5533 +-8168 +-8414 +740 +-6403 +-3803 +-1595 +-6578 +6009 +160 +9346 +-5866 +3829 +-4632 +-2473 +6984 +-2619 +-7816 +9684 +-8992 +-1025 +302 +5905 +9587 +6774 +-5665 +7855 +-5191 +-6288 +-7578 +4650 +-6454 +-5645 +-3321 +7354 +4559 +-4250 +9778 +4888 +-1774 +9936 +-6993 +-5371 +691 +-4078 +-2957 +-4632 +7246 +9654 +-8389 +-211 +7892 +-9477 +4072 +-2484 +4086 +5799 +-2048 +-3055 +-4661 +-5874 +-7117 +-7516 +-1796 +5006 +8628 +681 +6283 +5526 +6832 +6248 +7819 +-75 +-2301 +-8307 +956 +2964 +4128 +-8619 +-2702 +1390 +6133 +7858 +-9713 +-3695 +9651 +-5245 +8582 +-7506 +-9384 +-3759 +-5428 +-1707 +7467 +3895 +-6269 +2275 +-4173 +-2268 +-13 +4696 +6155 +5637 +-2985 +-9633 +-1495 +-4494 +-1338 +-8608 +-26 +-8730 +-7061 +-7173 +6892 +257 +-5304 +-9910 +-561 +-3375 +-8184 +-3039 +9940 +-1050 +9396 +-7237 +-409 +8569 +1029 +1188 +2571 +-2578 +-4314 +2790 +-2182 +-3734 +-1064 +-5405 +-6217 +1088 +-5889 +-622 +931 +-2670 +-284 +-7134 +-7349 +7206 +5522 +-7847 +-1639 +-624 +-6874 +-8075 +4522 +2802 +7196 +675 +-1700 +1652 +-7820 +-1924 +958 +9004 +8567 +-6716 +-2543 +-4956 +-5836 +-9477 +4095 +-2872 +-5881 +9242 +-8307 +2789 +0 +1163 +-3835 +1035 +-3244 +-4438 +-7115 +239 +337 +2524 +4026 +-1394 +-2529 +-6713 +5336 +4641 +-4924 +560 +5041 +27 +5368 +-5936 +3569 +1167 +5548 +6165 +-8505 +1939 +7677 +-6764 +7569 +-7864 +9863 +8511 +1330 +-3679 +-6308 +-1945 +-5812 +-6700 +-3187 +-6553 +-6971 +-2690 +-6025 +-9716 +-3191 +-2424 +9826 +-2344 +-6865 +6092 +-2606 +-5619 +-5975 +-4432 +8582 +-4250 +5062 +-8483 +1384 +-8347 +1762 +-8154 +9610 +-7311 +7134 +4240 +-9633 +-3966 +-1007 +9490 +-2730 +9659 +-6062 +-4105 +-3912 +-6956 +-5214 +1561 +144 +-8605 +1688 +8310 +-9458 +7339 +-4414 +-3294 +4761 +904 +-3718 +-2725 +2721 +-9654 +-5757 +-1804 +6191 +-8213 +-8444 +5171 +-5020 +710 +-9752 +-8192 +3275 +-4428 +-9719 +6938 +-5925 +-463 +-8284 +-9055 +-3230 +-5936 +-2078 +1384 +-5629 +7042 +-7058 +-1797 +176 +3790 +9286 +5157 +9292 +1999 +-5884 +-7421 +9564 +-3890 +2190 +5949 +-1862 +2445 +-6503 +9118 +-161 +-5193 +-4117 +-5939 +-9716 +-4031 +6220 +1999 +-4562 +2446 +-1804 +-1572 +-1007 +-4274 +-7382 +-3476 +6401 +-7476 +6933 +-8307 +-5874 +-5304 +-4992 +9255 +-6646 +4202 +-165 +3203 +-5643 +7220 +-4577 +-8619 +3593 +-9321 +3019 +5172 +1850 +5388 +5887 +-2424 +-9486 +393 +2570 +-7948 +-6208 +2651 +-6791 +-6856 +5767 +598 +2932 +3142 +-9096 +1731 +7901 +-9714 +-1193 +5113 +-835 +-9345 +-170 +3146 +9979 +814 +6563 +1190 +1009 +3767 +2471 +-4888 +-9586 +-2776 +4782 +4847 +3826 +9965 +1697 +-8485 +-1320 +6680 +492 +7635 +87 +-4824 +-3755 +-7288 +8251 +7597 +2321 +-1817 +-3693 +-153 +-352 +-8745 +5548 +3819 +-1633 +-8417 +8567 +-430 +849 +-6664 +-6275 +-5225 +3211 +-194 +-5331 +4785 +-9723 +6147 +7863 +-2013 +-4186 +4188 +9523 +-7586 +-8854 +-2314 +-6790 +-1610 +-6573 +1192 +-8894 +-6112 +8046 +4703 +8425 +9301 +-1338 +-7924 +-7421 +7974 +-2024 +-1421 +-3835 +-5075 +2440 +983 +6069 +-8850 +-2020 +-352 +-5881 +-7830 +-8819 +-8223 +823 +-683 +-2552 +-900 +13 +406 +6658 +-8389 +9987 +7736 +5675 +-8651 +9778 +-9031 +-4628 +4172 +-6980 +-942 +-5088 +-6956 +3785 +5482 +-5629 +9369 +37 +8698 +-2444 +9495 +3080 +-7469 +8310 +6671 +-7994 +6059 +4700 +9941 +-4932 +8864 +8518 +-1907 +2209 +-5219 +-8704 +4332 +-3381 +-4112 +-316 +-9650 +9117 +-6088 +-7686 +9279 +2352 +4993 +4723 +8914 +-4617 +-8096 +3277 +2092 +-9331 +-6931 +-8281 +8312 +181 +-1587 +8985 +7291 +1380 +183 +1716 +4816 +7216 +8340 +-1639 +-2731 +-8808 +-8287 +633 +-7410 +7903 +2352 +387 +-8077 +-9043 +-2655 +-7384 +-223 +-5596 +-3522 +6618 +-9043 +1614 +-5110 +-215 +-1457 +4448 +7333 +2427 +-1007 +1713 +760 +1343 +3607 +-8518 +9954 +-8614 +3806 +2947 +-2470 +-784 +-1537 +-3806 +5735 +3252 +7381 +3493 +-2429 +1991 +-7719 +-7562 +-7678 +3677 +-8940 +-755 +1273 +-4913 +66 +-9909 +-7700 +549 +-623 +796 +5930 +-5526 +9676 +1146 +-2433 +-8385 +8947 +-2560 +-476 +6318 +-9677 +-4707 +1350 +6823 +-2597 +-7626 +6412 +6303 +5410 +-9531 +7787 +-8524 +1561 +3469 +-521 +3351 +3277 +9189 +-7562 +3427 +6801 +-1702 +-2907 +-9138 +-4603 +6720 +6971 +-7515 +-2012 +-2204 +-2643 +8764 +8925 +-629 +9454 +-7543 +-324 +9542 +-2263 +-622 +-354 +2068 +6728 +-7893 +-8927 +4503 +-853 +6559 +1177 +-2384 +-7028 +-403 +-8700 +2739 +3919 +9433 +3712 +-1391 +-8447 +-7640 +9173 +-7893 +3785 +-6209 +-8191 +4508 +-7360 +-4350 +7490 +-2274 +3785 +9806 +-9155 +-671 +6057 +9577 +4759 +2136 +-1491 +-5881 +-2139 +-6503 +-5333 +9592 +-7120 +-4383 +-2687 +-5370 +4855 +7589 +-337 +2975 +-8649 +-4785 +-1796 +-2935 +286 +1426 +1418 +-7983 +3138 +-4357 +8228 +3617 +-4566 +-7159 +-641 +4057 +8325 +3483 +-6645 +-4644 +-5944 +-4191 +9083 +7447 +-260 +-5603 +3391 +-1745 +-7062 +3538 +8817 +-9912 +4791 +-3149 +4763 +9496 +9882 +2420 +2191 +-817 +1642 +-1562 +-2715 +7153 +-54 +-8701 +8044 +1103 +-4993 +-5799 +3597 +3172 +1528 +6606 +-883 +3708 +1082 +7453 +1870 +-1987 +-4714 +-4491 +8272 +-5498 +-8807 +8136 +1163 +7122 +4827 +6864 +4350 +313 +1726 +9893 +-2560 +-926 +6442 +-2834 +-808 +6125 +3286 +-9305 +-7864 +-7552 +9344 +-3735 +-8080 +1514 +5905 +-7600 +4806 +-4072 +-2300 +-8505 +6165 +1578 +-9853 +3829 +9013 +-8161 +-3230 +5181 +5941 +9374 +2868 +1999 +2783 +-7607 +1771 +-3122 +3580 +-3582 +-6758 +3026 +8572 +1765 +-2200 +-3560 +-1160 +-5370 +3084 +8148 +-4862 +-7522 +-9224 +3316 +1298 +-4581 +881 +3195 +3889 +-6655 +-2405 +-3340 +-8668 +-2197 +4723 +-9873 +-5191 +9282 +-8558 +6719 +7293 +15 +3075 +-8630 +-5792 +-497 +-3629 +-402 +297 +-3858 +-2770 +628 +-4651 +811 +-3495 +6195 +7953 +-8538 +2445 +5354 +1320 +3913 +9683 +-3907 +9986 +4651 +-4377 +-8447 +-3147 +-4291 +5889 +3807 +-6316 +4225 +-1906 +-2112 +-3910 +2705 +-855 +-7508 +6007 +405 +-1022 +-879 +-5021 +-2966 +-5584 +1347 +7807 +-6217 +2583 +4987 +-147 +2106 +-4319 +948 +2477 +-5118 diff --git a/2022/src/bin/day20.rs b/2022/src/bin/day20.rs new file mode 100644 index 0000000..47c1dff --- /dev/null +++ b/2022/src/bin/day20.rs @@ -0,0 +1,55 @@ +#![feature(test)] +extern crate test; +use aoc2022::{boilerplate, common::*}; +use std::{collections::VecDeque, iter::repeat}; + +const DAY: usize = 20; +type Parsed = VecDeque<(isize, bool)>; + +fn parse_input(raw: &str) -> Parsed { + raw.lines().map(|l| l.parse().unwrap()).zip(repeat(false)).collect() +} + +fn part1(parsed: &Parsed) -> isize { + let mut xs = parsed.to_owned(); + let mut moved = 0; + while moved < parsed.len() { + let x = xs.pop_front().unwrap(); + if x.1 { + xs.push_back(x); + } else { + xs.insert(((x.0 + (xs.len() * 2) as isize) % xs.len() as isize) as usize, (x.0, true)); + moved += 1; + } + } + let i = xs.iter().position(|(x, _)| x == &0).unwrap(); + xs.rotate_left(i); + xs.rotate_left(1000 % parsed.len()); + let a = xs.front().unwrap().0; + xs.rotate_left(1000 % parsed.len()); + let b = xs.front().unwrap().0; + xs.rotate_left(1000 % parsed.len()); + let c = xs.front().unwrap().0; + a + b + c +} + +fn part2(parsed: &Parsed) -> usize { + unimplemented!() +} + +boilerplate! { + TEST_INPUT == "1 +2 +-3 +3 +-2 +0 +4", + tests: { + part1: { TEST_INPUT => 3 }, + part2: { TEST_INPUT => 0 }, + }, + bench1 == 23321, + bench2 == 0, + bench_parse: VecDeque::len => 5000, +}