通过双前瞻条件筛选,利用递归和对于步骤顺序的调整实现寻找骑士之旅的一个解。
当然你可以通过回溯找到所有解,但是太费计算机了,我就没写。
#include "KnightsTour.h"
void solveKnightsTour(int n, int m) {
Grid<int> board(n, vector<int>(m, 0));
if (n<5 or m<5)
{
for (int i = n; i > 0; i--) {
for (int j = 0; j < m; j++) {
cout << " " << setw(2) << 0;
}
cout << endl;
}
cout << "No tour exists for this board." << endl;
}
else
{
findKnightsTour(board, 0, 0, 1);
displayBoard(board);
}
}
void displayBoard(Grid<int> & board) {
for (int i = board.size() - 1; i >= 0; i--) {
for (int j = 0; j < board[0].size(); j++) {
cout << " " << setw(2) << board[i][j];
}
cout << endl;
}
}
bool Min(int judge, vector<int> judgeset)
{
for (int i = 0; i < 7; i++)
{
if (judge > judgeset[i]){return false;}
}
return true;
}
int check(Grid<int> & board, int row, int col)
{
int c = 0;
int listrow[8] = {2,1,-1,-2,-2, 1,-1, 2};
int listcol[8] = {1,2, 2,-1, 1,-2,-2,-1};
for (int i = 0; i < 8; i++)
{
if(row+listrow[i]<board.size() && row+listrow[i] >=0 && col+listcol[i]<board[0].size() && col+listcol[i]>=0 && board[row+listrow[i]][col+listcol[i]] == 0)
{
c++;
}
}
return c;
}
bool findKnightsTour(Grid<int> & board, int row, int col, int seq) {
// TODO
if (seq == (board.size())*(board[0].size())){
board[row][col] = (board.size())*(board[0].size());
return true;
}
else
{
board[row][col] = seq;
//cout<<" row: "<<row<<" col: "<<col<<" seq:"<<seq<<endl;
//displayBoard(board);
int x,y;
int listrow[8] = {2,1,-1,-2,-2, 1,-1, 2};
int listcol[8] = {1,2, 2,-1, 1,-2,-2,-1};
vector<int> judgeset{8,8,8,8,8,8,8};
for (int i = 0; i < 8; i++)
{
if (row+listrow[i]<board.size() && row+listrow[i] >=0 && col+listcol[i]<board[0].size() && col+listcol[i]>=0 && board[row+listrow[i]][col+listcol[i]] == 0 )
{
int judge = check(board,row+listrow[i],col+listcol[i]);
judgeset[i] = judge;
//cout<<"judge: "<<judge<<endl;
if (Min(judge,judgeset))
{
//cout<<"judge: "<<judge<<" x: "<<x<<" y: "<<y<<endl;
x = row+listrow[i]; y = col+listcol[i];
}
}
}
if (x<board.size() && x >=0 && y<board[0].size() && y>=0 && board[x][y] == 0)
{
//cout<<" x: "<<x<<" y: "<<y<<endl;cout<<endl;
//displayBoard(board);
findKnightsTour(board,x,y,seq+1);
}
return true;
}
}
int main() {
int n, m;
cin>>n>>m;
solveKnightsTour(n, m);
return 0;
}
头文件:
#ifndef KNIGHTSTOUR_H
#define KNIGHTSTOUR_H
#include <iostream>
#include <iomanip>
#include <vector>
#include<string>
using namespace std;
template<typename T>
using Grid = vector<vector<T>>;
void solveKnightsTour(int n, int m);
void displayBoard(Grid<int> & board);
bool Min(int judge, vector<int> judgeset);
int check(Grid<int> & board,int row, int col);
bool findKnightsTour(Grid<int> & board, int row, int col, int seq);
#endif // KNIGHTSTOUR_H
输入:
5 8
输出:
7 38 21 36 15 34 19 28
22 3 8 39 20 29 14 33
9 6 37 30 35 16 27 18
4 23 2 11 40 25 32 13
1 10 5 24 31 12 17 26
输入:
70 70
输出:
276 109 264 269 278 107 262 271 1518 105 260 1575 1854 103 258 1577 2300 101 256 2305 2666 99 254 2671 2910 97 252 2907 2926 95 250 3149 3182 93 248 3185 3442 91 246 3631 3868 89 244 3633 4042 87 242 4035 4050 85 240 4491 4432 83 238 4497 4508 81 236 4737 4726 79 234 4827 4820 77 232 4897 4836 75
265 268 277 108 263 270 1515 106 261 1574 1855 104 259 1576 2231 102 257 2304 2407 100 255 2672 2723 98 253 2908 2923 96 251 3148 3179 94 249 3184 3439 92 247 3630 3869 90 245 3632 4041 88 243 4036 4049 86 241 4492 4431 84 239 4498 4507 82 237 4736 4725 80 235 4826 4819 78 233 4898 4835 76 231 4900
110 275 266 279 1494 1313 272 1519 1570 1517 1572 1853 1866 1857 1578 2299 2288 2301 2306 2665 2414 2667 2670 2909 2802 2911 2906 2927 3152 2925 3150 3183 3286 3181 3186 3443 3626 3441 3628 3867 3934 3871 3634 4037 4040 4043 4034 4399 4048 4051 4488 4499 4490 4433 4496 4519 4506 4509 4734 4787 4738 4727 4824 4847 4828 4821 4896 4899 74 4837
267 280 1315 1312 273 1514 1507 1516 1573 1852 1801 1856 1579 2230 2289 2232 2303 2406 2413 2408 2669 2722 2673 2724 2905 2922 2913 2924 3147 3178 3189 3180 3187 3438 3411 3440 3629 3866 3857 3870 3635 4038 3973 4044 4033 4166 4047 4052 4487 4430 4493 4434 4501 4512 4505 4510 4735 4724 4739 4728 4825 4818 4829 4822 4895 4842 4891 4834 4893 230
1310 111 274 1493 1314 1495 1520 1569 1522 1571 1580 1865 1858 1867 1892 2287 2298 2307 2302 2415 2664 2649 2668 2801 2912 2803 2928 3153 2930 3151 3146 3285 3206 3287 3444 3625 3446 3627 3636 3933 3872 3935 3970 4039 4046 4053 4398 4167 4400 4435 4500 4489 4504 4495 4518 4705 4520 4733 4786 4771 4788 4823 4848 4843 4846 4833 4894 4889 4838 73
281 1316 1311 1320 1497 1506 1513 1508 1581 1800 1851 1802 1869 1894 2229 2290 2233 2412 2405 2648 2409 2674 2721 2676 2725 2904 2921 2914 3145 3190 3177 3188 3289 3410 3437 3412 3637 3856 3865 3858 3919 3972 4045 3974 4165 4032 4169 4162 4429 4486 4483 4494 4513 4502 4511 4732 4723 4740 4729 4790 4817 4830 4845 4832 4871 4890 4841 4892 229 4888
112 1309 1252 1317 1492 1343 1496 1521 1568 1523 1804 1859 1864 1891 1868 1893 2286 2297 2308 2411 2416 2663 2650 2727 2800 2915 2804 2929 3154 2931 3210 3205 3284 3207 3288 3445 3624 3447 3918 3873 3932 3969 3936 3971 4054 4161 4164 4397 4168 4401 4436 4503 4484 4517 4704 4521 4706 4731 4770 4785 4772 4789 4858 4849 4844 4883 4880 4887 72 4839
1251 282 1319 1342 1321 1498 1505 1512 1509 1582 1799 1850 1803 1870 1895 2228 2291 2234 2417 2404 2647 2410 2675 2720 2677 2726 2903 2920 3171 3144 3191 3176 3209 3290 3409 3436 3413 3638 3855 3864 3859 3920 3975 4056 4031 4170 4125 4272 4163 4428 4485 4482 4523 4514 4663 4652 4741 4722 4773 4730 4791 4816 4831 4870 4879 4872 4885 4840 4881 228
1146 113 1308 1253 1318 1491 1344 1501 1524 1567 1510 1805 1860 1863 1890 1871 1896 2285 2296 2309 2592 2643 2662 2651 2728 2799 2916 2805 2932 3155 3172 3211 3204 3283 3208 3415 3448 3623 3860 3917 3874 3931 3968 3937 4124 4055 4160 4171 4396 4273 4402 4437 4516 4651 4522 4703 4664 4707 4750 4769 4784 4859 4850 4857 4884 4867 4882 4877 4886 71
283 1250 1147 1322 1341 1346 1499 1504 1511 1502 1583 1798 1849 1840 1875 1862 2227 2292 2235 2418 2403 2646 2593 2644 2719 2678 2807 2902 2919 3170 3143 3192 3175 3312 3291 3408 3435 3414 3639 3854 3863 3938 3921 3976 4057 4030 4227 4126 4271 4172 4427 4524 4481 4640 4515 4662 4653 4742 4721 4774 4751 4792 4815 4862 4869 4878 4873 4866 227 4876
114 1145 1128 1307 1254 1337 1490 1345 1500 1525 1566 1839 1806 1861 1848 1889 1872 1897 2284 2295 2310 2591 2642 2661 2652 2729 2798 2917 2806 2933 3156 3173 3212 3203 3282 3313 3416 3449 3622 3861 3916 3875 3930 3967 4028 4123 4128 4159 4228 4395 4274 4403 4438 4525 4650 4641 4702 4665 4708 4749 4768 4783 4860 4851 4856 4863 4868 4875 70 4811
1127 284 1249 1148 1323 1340 1347 1338 1503 1564 1545 1584 1797 1874 1841 1876 1847 2226 2293 2236 2419 2402 2645 2594 2679 2718 2715 2808 2901 2918 3169 3142 3193 3174 3311 3292 3407 3434 3431 3640 3853 3862 3939 3922 3977 4058 4029 4226 4127 4270 4173 4426 4529 4480 4639 4526 4661 4654 4743 4720 4775 4752 4793 4814 4861 4874 4855 4812 4865 226
1110 115 1144 1129 1306 1255 1336 1489 1526 1547 1586 1565 1838 1807 1836 1873 1888 1879 1898 2283 2294 2311 2590 2641 2660 2653 2730 2797 2716 2897 2934 3157 3168 3213 3202 3281 3314 3417 3450 3621 3432 3915 3876 3929 3966 4027 4122 4129 4158 4229 4394 4275 4404 4439 4528 4649 4642 4701 4666 4709 4748 4767 4782 4805 4852 4813 4864 4799 4810 69
285 1126 1111 1248 1149 1324 1339 1348 1473 1544 1563 1546 1585 1796 1877 1842 1881 1846 2225 1886 2237 2420 2401 2654 2595 2680 2717 2714 2809 2900 3141 2898 3139 3194 3279 3310 3293 3406 3433 3430 3641 3852 3923 3940 4025 3978 4059 4156 4225 4174 4269 4406 4425 4530 4479 4638 4527 4660 4655 4744 4719 4776 4753 4794 4781 4804 4807 4854 225 4800
116 1109 1066 1143 1130 1305 1256 1335 1488 1527 1548 1587 1794 1837 1808 1835 1878 1887 1880 1899 2282 2399 2312 2589 2640 2659 2712 2731 2796 2791 2896 2935 3158 3167 3214 3201 3280 3315 3418 3451 3620 3613 3914 3877 3928 3965 4026 4121 4130 4157 4230 4393 4276 4405 4440 4591 4648 4643 4700 4667 4710 4747 4766 4777 4806 4853 4798 4801 68 4809
1065 286 1125 1112 1247 1150 1325 1472 1349 1474 1543 1562 1559 1810 1795 1882 1843 1902 1845 2224 1885 2238 2421 2400 2655 2596 2681 2790 2713 2810 2899 3140 3165 3138 3195 3278 3309 3294 3405 3612 3429 3642 3851 3924 3941 4024 3979 4060 4155 4224 4175 4268 4407 4424 4531 4478 4637 4592 4659 4656 4745 4718 4711 4754 4795 4780 4803 4808 4797 224
1008 117 1108 1067 1142 1131 1304 1257 1334 1487 1528 1549 1588 1793 1560 1809 1834 1883 1900 2019 2100 2281 2398 2313 2588 2639 2658 2711 2732 2795 2792 2895 2936 3159 3166 3215 3200 3403 3316 3419 3452 3619 3614 3913 3878 3927 3964 4131 4120 4177 4266 4231 4392 4277 4476 4441 4590 4647 4644 4699 4668 4657 4746 4765 4778 4759 4796 4761 4802 67
287 1064 1009 1124 1113 1246 1151 1326 1471 1350 1475 1542 1561 1558 1811 1832 1901 1844 1903 1884 2223 2314 2239 2422 2597 2656 2709 2682 2789 2786 2811 2938 2793 3164 3137 3196 3277 3308 3295 3404 3611 3428 3643 3850 3925 3942 4023 3980 4061 4154 4223 4176 4267 4408 4423 4532 4477 4636 4593 4658 4645 4712 4717 4758 4755 4764 4779 4692 223 4762
118 1007 908 1107 1068 1141 1132 1303 1258 1333 1486 1529 1550 1589 1792 1767 1828 1833 2018 2099 2020 2101 2280 2397 2394 2587 2638 2657 2710 2733 2794 2787 2894 2937 3160 3199 3216 3197 3402 3317 3420 3453 3618 3615 3912 3879 3926 3963 4132 4119 4178 4265 4232 4391 4278 4475 4442 4589 4646 4635 4698 4669 4756 4687 4716 4695 4760 4763 66 4623
907 288 1063 1010 1123 1114 1245 1152 1327 1470 1351 1476 1541 1766 1557 1812 1831 1904 1829 2022 2103 2222 2315 2240 2423 2598 2395 2708 2683 2788 2785 2812 2939 2886 3163 3136 3161 3276 3307 3296 3427 3610 3425 3644 3849 3616 3943 4022 3981 4062 4153 4222 4279 4368 4409 4422 4533 4578 4633 4594 4671 4686 4713 4696 4757 4684 4691 4624 4693 222
860 119 1006 909 1106 1069 1140 1133 1302 1259 1332 1485 1530 1551 1590 1791 1768 1827 2024 2017 2098 2021 2102 2279 2396 2393 2586 2637 2704 2783 2734 2885 2882 2893 2940 2887 3198 3217 3262 3401 3318 3421 3454 3617 3608 3911 3880 3983 3962 4133 4118 4179 4264 4233 4390 4369 4474 4443 4588 4579 4634 4697 4670 4685 4688 4715 4694 4683 4622 65
289 906 861 1062 1011 1122 1115 1244 1153 1328 1469 1352 1477 1540 1765 1556 1813 1830 1905 1946 2023 2104 2221 2316 2241 2424 2599 2544 2707 2684 2705 2784 2813 2888 2883 3162 3135 3264 3275 3306 3297 3426 3609 3424 3645 3848 3723 3944 4021 3982 4063 4152 4221 4280 4367 4410 4421 4534 4577 4632 4595 4672 4627 4714 4675 4682 4625 4690 221 4680
120 859 826 1005 910 1105 1070 1139 1134 1301 1260 1331 1484 1531 1552 1591 1790 1769 1826 2025 2016 2097 2242 2149 2278 2543 2392 2585 2636 2703 2782 2735 2884 2881 2892 2941 2890 3261 3218 3263 3400 3319 3422 3455 3722 3607 3910 3881 3984 3961 4134 4117 4180 4263 4234 4389 4370 4473 4444 4587 4580 4631 4596 4673 4626 4689 4676 4681 64 4621
825 290 905 862 1061 1012 1121 1116 1243 1154 1329 1468 1353 1478 1539 1764 1555 1814 1945 1906 1947 2148 2105 2220 2317 2390 2425 2600 2545 2706 2685 2778 2879 2814 2889 3102 3219 3134 3265 3274 3305 3298 3399 3320 3423 3646 3847 3724 3945 4020 4115 4064 4151 4220 4281 4366 4411 4420 4535 4576 4597 4586 4581 4628 4677 4674 4617 4620 4679 220
830 121 858 827 1004 911 1104 1071 1138 1135 1300 1261 1330 1483 1532 1553 1592 1789 1770 1825 2026 2015 2096 2243 2150 2277 2542 2391 2584 2635 2702 2781 2736 2779 2880 2891 2942 3101 3260 3221 3266 3321 3304 3299 3456 3721 3606 3909 3882 3985 3960 4135 4116 4181 4262 4235 4388 4371 4472 4445 4582 4575 4630 4609 4616 4619 4678 4561 4614 63
291 824 829 904 863 1060 1013 1120 1117 1242 1155 1136 1467 1354 1479 1538 1763 1554 1815 1944 1907 1948 2147 2106 2219 2318 2389 2426 2601 2546 2737 2686 2777 2878 2815 2876 3103 3220 3133 3100 3273 3300 3271 3398 3605 3602 3647 3846 3725 3946 4019 4114 4065 4150 4219 4282 4365 4412 4419 4536 4573 4598 4585 4600 4629 4610 4615 4618 219 4560
122 831 786 857 828 1003 912 1103 1072 1137 1118 1299 1262 1463 1482 1533 1480 1593 1788 1771 1824 2027 2014 2095 2244 2151 2276 2541 2548 2583 2634 2701 2780 2875 3038 2943 3068 2945 3104 3259 3222 3267 3322 3303 3600 3457 3720 3603 3908 3883 3986 3959 4136 4217 4182 4261 4236 4387 4372 4471 4446 4583 4574 4611 4608 4601 4562 4613 62 4605
785 292 823 864 903 914 1059 1014 1119 1102 1241 1156 1239 1466 1355 1464 1537 1762 1535 1816 1943 1908 1949 2146 2107 2218 2319 2388 2427 2602 2547 2738 2687 2776 2877 2816 3039 3106 3069 3132 3099 3272 3301 3270 3397 3604 3601 3648 3845 3726 3947 4018 4113 4066 4149 4218 4283 4364 4413 4418 4537 4572 4599 4584 4563 4612 4607 4604 4559 218
738 123 832 787 856 899 1002 913 1058 1073 1238 1199 1298 1263 1462 1481 1534 1715 1594 1787 1772 1823 2028 2013 2094 2245 2152 2275 2540 2549 2582 2633 2700 2817 2874 3037 2944 3067 2946 3105 3258 3223 3268 3323 3302 3599 3458 3719 3740 3907 3884 3987 3958 4137 4216 4183 4260 4237 4386 4373 4470 4447 4564 4571 4602 4555 4568 4557 4606 61
293 784 739 822 865 902 915 900 1015 1198 1101 1240 1157 1356 1465 1390 1595 1536 1761 1716 1817 1942 1909 1950 2145 2108 2217 2320 2387 2428 2603 2688 2739 2872 2775 2994 2947 3040 3107 3070 3131 3098 3257 3224 3269 3396 3649 3738 3727 3844 3741 3948 4017 4112 4067 4148 4239 4284 4363 4414 4417 4538 4469 4448 4567 4570 4603 4554 217 4558
124 737 712 833 788 855 898 1001 1074 1057 1158 1237 1200 1297 1264 1461 1674 1391 1714 1637 1786 1773 1822 2029 2012 2093 2246 2153 2274 2539 2550 2581 2632 2699 2818 2873 3036 2995 3066 3059 3108 3071 3130 3097 3324 3371 3598 3459 3718 3739 3906 3885 3988 3957 4138 4215 4184 4259 4238 4385 4374 4449 4416 4565 4544 4551 4556 4569 60 4549
711 294 783 740 821 866 901 916 957 1016 1197 1100 1265 1394 1357 1392 1389 1596 1675 1760 1717 1818 1941 1910 1951 2144 2109 2216 2321 2386 2429 2604 2689 2740 2871 2774 2993 2948 3041 3072 3065 3060 3225 3256 3373 3460 3395 3650 3737 3728 3843 3742 3949 4016 4111 4068 4147 4240 4285 4362 4415 4384 4539 4468 4465 4566 4545 4550 4553 216
686 125 736 713 834 789 854 897 1000 1075 1056 1159 1236 1201 1296 1395 1460 1673 1636 1713 1638 1785 1774 1821 2030 2011 2092 2247 2154 2273 2538 2551 2580 2631 2698 2819 2950 3035 2996 3061 3058 3109 3096 3129 3370 3325 3372 3597 3588 3717 3744 3905 3886 3989 3956 4139 4214 4185 4258 4255 4450 4375 4466 4383 4546 4543 4552 4459 4548 59
295 710 687 782 741 820 867 956 917 958 1017 1196 1099 1266 1393 1358 1597 1388 1639 1676 1759 1718 1819 1940 1911 1952 2143 2110 2215 2322 2385 2430 2605 2690 2741 2870 2773 2992 2949 3042 3073 3064 3127 3226 3255 3374 3461 3394 3651 3736 3729 3842 3743 3950 4015 4110 4069 4146 4241 4286 4361 4256 4451 4540 4467 4464 4547 4542 215 4460
126 685 640 735 714 835 790 853 896 999 1076 1055 1160 1235 1202 1295 1396 1459 1672 1635 1712 1709 1784 1775 1820 2031 2010 2091 2248 2155 2272 2537 2552 2579 2630 2697 2820 2951 3034 2997 3062 3057 3110 3095 3128 3369 3326 3587 3596 3589 3716 3745 3904 3887 3990 3955 4140 4213 4186 4257 4254 4453 4376 4463 4382 4541 4458 4461 58 4351
639 296 709 688 781 742 819 868 955 918 959 1018 1195 1098 1267 1398 1359 1598 1387 1640 1677 1758 1719 1710 1939 1912 1953 2142 2111 2214 2323 2384 2431 2606 2691 2742 2869 2772 2991 3030 3043 3074 3063 3126 3227 3254 3375 3462 3393 3652 3735 3730 3841 3954 3951 4014 4109 4070 4145 4242 4287 4360 4381 4452 4377 4462 4355 4352 4457 214
570 127 684 641 734 715 836 791 852 895 998 1077 1054 1161 1234 1203 1294 1397 1458 1671 1634 1711 1708 1783 1776 1955 2032 2009 2090 2249 2156 2271 2536 2553 2578 2629 2696 2821 2952 3033 2998 3031 3056 3111 3094 3327 3368 3391 3586 3595 3590 3715 3746 3903 3888 3991 3952 4141 4212 4187 4380 4253 4454 4347 4356 4353 4456 4345 4350 57
297 638 571 708 689 780 743 818 869 954 919 960 1019 1194 1097 1268 1399 1360 1599 1386 1641 1678 1757 1720 1913 1938 2007 1954 2141 2112 2213 2324 2383 2432 2607 2692 2743 2868 2771 2990 3029 3044 3075 3092 3125 3228 3253 3376 3463 3392 3653 3734 3731 3840 3953 3902 4013 4108 4071 4144 4243 4288 4359 4378 4455 4346 4349 4354 213 4344
128 569 458 683 642 733 716 837 792 851 894 997 1078 1053 1162 1233 1204 1293 1400 1457 1670 1633 1722 1707 1782 1777 1956 2033 2008 2089 2250 2157 2270 2535 2554 2577 2628 2695 2822 2953 3032 2999 3090 3055 3112 3093 3328 3367 3390 3585 3594 3591 3714 3747 3732 3889 3992 4073 4142 4211 4188 4379 4252 4335 4348 4357 4342 4339 56 4325
457 298 637 572 707 690 779 744 817 870 953 920 961 1020 1193 1096 1269 1402 1361 1600 1385 1642 1679 1756 1721 1914 1937 2006 2087 2140 2113 2212 2325 2382 2433 2608 2693 2744 2867 2770 2989 3028 3045 3076 3091 3124 3229 3252 3377 3464 3581 3654 3733 3592 3839 3994 3901 4012 4107 4072 4143 4244 4289 4358 4341 4338 4333 4324 4343 212
462 129 568 459 682 643 732 717 838 793 850 893 996 1079 1052 1163 1232 1205 1292 1401 1456 1669 1632 1723 1706 1781 1778 1957 2034 2005 2088 2251 2158 2269 2534 2555 2576 2627 2694 2823 2954 3047 3000 3089 3054 3113 3250 3329 3366 3389 3584 3593 3582 3713 3748 3899 3890 3993 4074 4011 4210 4189 4336 4251 4334 4323 4340 4331 4326 55
299 456 461 636 573 706 691 778 745 816 871 952 921 962 1021 1192 1095 1270 1403 1362 1601 1384 1643 1680 1755 1752 1915 1936 1779 2086 2139 2114 2211 2326 2381 2434 2609 2556 2745 2866 2769 2988 3027 3046 3077 3230 3123 3364 3251 3378 3465 3580 3655 3786 3657 3838 3995 3900 4085 4106 4191 4206 4245 4290 4337 4332 4327 4322 211 4330
130 463 442 567 460 681 644 731 718 839 794 849 892 995 1080 1051 1164 1231 1206 1291 1404 1455 1668 1631 1724 1705 1780 1753 1958 2035 2004 2159 2252 2435 2268 2533 2380 2575 2626 2767 2824 2955 3048 3001 3088 3053 3114 3249 3330 3365 3388 3583 3658 3749 3712 3787 3898 3891 4010 4075 4086 4209 4190 4207 4250 4321 4308 4329 54 4319
441 300 455 546 635 574 705 692 777 746 815 872 951 922 963 1022 1191 1094 1271 1406 1363 1602 1383 1644 1681 1754 1751 1916 1935 2002 2085 2138 2115 2210 2327 2436 2557 2610 2765 2746 2865 2768 2987 3026 3051 3078 3231 3122 3363 3386 3379 3466 3579 3656 3785 3892 3837 3996 4087 4084 4105 4192 4205 4246 4291 4328 4315 4320 4309 210
446 131 464 443 566 547 680 645 730 719 840 795 848 891 994 1081 1050 1165 1230 1207 1290 1405 1454 1667 1630 1725 1704 1933 2000 1959 2036 2003 2160 2253 2438 2267 2532 2379 2574 2625 2766 2825 2956 3049 3002 3087 3052 3115 3248 3331 3468 3387 3708 3659 3750 3711 3788 3897 4076 4009 4098 4203 4208 4193 4316 4249 4310 4307 4318 53
301 440 445 454 545 634 575 704 693 776 747 814 873 950 923 964 1023 1190 1093 1272 1407 1364 1603 1382 1645 1682 1917 1750 1961 1934 2001 2084 2137 2116 2209 2328 2437 2558 2611 2764 2747 2864 2861 2986 3025 3050 3079 3232 3121 3362 3385 3380 3467 3578 3709 3784 3893 3836 3997 4088 4083 4104 4099 4204 4247 4292 4317 4314 209 4306
132 447 408 465 444 565 548 679 646 729 720 841 796 847 890 993 1082 1049 1166 1229 1208 1289 1408 1453 1666 1629 1726 1703 1932 1999 1960 2037 2060 2161 2254 2439 2266 2531 2378 2573 2624 2859 2826 2957 2862 3003 3086 3119 3116 3247 3332 3469 3576 3707 3660 3751 3710 3789 3896 4077 4008 4097 4202 4293 4194 4311 4248 4305 52 4313
407 302 439 520 453 544 633 576 703 694 775 748 813 874 949 924 965 1024 1189 1092 1273 1410 1365 1604 1381 1646 1683 1918 1749 1962 2039 2062 2083 2136 2117 2208 2329 2440 2559 2612 2763 2748 2863 2860 2985 3024 3117 3080 3233 3120 3361 3384 3381 3662 3577 3706 3783 3894 3835 3998 4089 4082 4103 4100 4201 4294 4299 4312 4303 208
398 133 448 409 466 521 564 549 678 647 728 721 842 797 846 889 992 1083 1048 1167 1228 1209 1288 1409 1452 1665 1628 1727 1702 1931 1998 2059 2038 2061 2162 2255 2442 2265 2530 2377 2572 2623 2858 2827 2958 2981 3004 3085 3118 3333 3246 3357 3470 3575 3382 3661 3752 3769 3790 3895 4078 4007 4096 4195 4300 4101 4304 3819 4298 51
303 406 399 438 519 452 543 632 577 702 695 774 749 812 875 948 925 966 1025 1188 1091 1274 1411 1366 1605 1380 1647 1684 1919 1748 1963 2040 2063 2082 2135 2118 2207 2330 2441 2560 2613 2762 2749 2960 2979 2984 3023 2982 3081 3234 3355 3360 3383 3358 3663 3754 3705 3782 3825 3834 3999 4090 4081 4102 4095 4200 4295 4302 207 3818
134 397 388 449 410 467 522 563 550 677 648 727 722 843 798 845 888 991 1084 1047 1168 1227 1210 1287 1412 1451 1664 1627 1728 1701 1930 1997 2058 2119 2192 2163 2256 2443 2264 2529 2376 2571 2622 2857 2828 2959 2980 3005 3084 3245 3334 3351 3356 3471 3574 3703 3768 3753 3770 3791 3824 4079 4006 4091 4196 4301 3820 4199 50 4297
387 304 405 400 437 518 451 542 631 578 701 696 773 750 811 876 947 926 967 1026 1187 1090 1275 1414 1367 1606 1379 1648 1685 1920 1747 1964 2041 2064 2081 2134 2193 2206 2331 2444 2561 2614 2761 2750 2961 2978 2983 3022 3235 3082 3349 3354 3359 3352 3545 3664 3755 3704 3781 3826 3833 4000 3823 4080 4005 4094 4197 4296 3817 206
360 135 396 389 450 411 468 523 562 551 676 649 726 723 844 799 810 887 990 1085 1046 1169 1226 1211 1286 1413 1450 1663 1626 1729 1700 1929 1996 2057 2120 2191 2164 2257 2446 2263 2528 2375 2570 2621 2856 2829 2970 3083 3006 3021 3244 3335 3350 3547 3472 3573 3702 3767 3774 3771 3792 3827 3832 4001 4092 3821 4004 3521 4198 49
305 386 361 404 401 436 517 412 541 630 579 700 697 772 751 724 877 946 927 968 1027 1186 1089 1276 1415 1368 1607 1378 1649 1686 1921 1746 1965 2042 2065 2080 2133 2194 2205 2332 2445 2562 2615 2760 2751 2962 2977 3008 2971 3236 3337 3348 3353 3544 3571 3546 3665 3756 3763 3780 3775 3772 3809 3822 3829 4002 4093 3816 205 3520
136 359 354 395 390 413 402 469 524 561 552 675 650 725 698 771 800 809 886 989 1086 1045 1170 1225 1212 1285 1416 1449 1662 1625 1730 1699 1928 1995 2056 2121 2190 2165 2258 2447 2262 2527 2374 2569 2620 2855 2830 2969 2976 3007 3020 3243 3336 3473 3548 3667 3572 3701 3766 3773 3764 3793 3828 3831 3808 3815 3522 4003 48 3525
353 306 385 362 403 394 435 516 433 540 629 580 699 674 651 752 807 878 945 928 969 1028 1185 1088 1277 1418 1369 1608 1377 1650 1687 1922 1745 1966 2043 2066 2079 2132 2195 2204 2333 2448 2563 2616 2759 2752 2963 2972 3009 3018 3237 3338 3347 3552 3543 3570 3549 3666 3757 3762 3779 3776 3801 3810 3813 3830 3807 3524 3519 204
344 137 358 355 414 391 432 393 470 525 560 553 628 581 754 801 770 885 808 883 988 1087 1044 1171 1224 1213 1284 1417 1448 1661 1624 1731 1698 1927 1994 2055 2122 2189 2166 2259 2450 2261 2526 2373 2568 2619 2854 2831 2968 2975 3012 3019 3242 3339 3474 3551 3668 3759 3700 3765 3794 3799 3812 3777 3802 3523 3814 3517 3526 47
307 352 345 384 363 356 471 434 515 500 539 582 559 554 673 652 753 806 879 944 929 970 1029 1184 1043 1278 1419 1370 1609 1376 1651 1688 1923 1744 1967 2044 2067 2078 2131 2196 2203 2334 2449 2564 2617 2758 2753 2964 2973 3010 3017 3238 3013 3346 3553 3542 3569 3550 3687 3758 3761 3778 3697 3800 3811 3806 3527 3502 203 3518
138 343 330 357 350 415 392 431 498 511 526 555 538 627 654 755 802 769 884 931 882 987 942 985 1172 1223 1214 1283 1420 1447 1660 1623 1732 1697 1926 1993 2054 2123 2188 2167 2260 2451 2202 2525 2372 2567 2618 2853 2832 2967 2974 3011 3340 3241 3540 3475 3558 3669 3760 3699 3688 3795 3798 3803 3528 3693 3516 3805 46 3491
329 308 351 346 383 364 429 472 501 514 499 512 583 558 585 672 653 758 805 880 943 930 971 1030 1183 1042 1279 1422 1371 1610 1375 1652 1689 1924 1743 1968 2045 2068 2077 2130 2197 2186 2335 2452 2565 2524 2757 2754 2965 2852 2833 3016 3239 3014 3345 3554 3541 3568 3559 3686 3679 3698 3689 3696 3797 3804 3501 3492 3503 202
310 139 342 331 366 349 416 381 430 497 510 527 556 537 626 655 756 803 768 759 932 881 986 941 984 1173 1222 1215 1282 1421 1446 1659 1622 1733 1696 1925 1992 2053 2124 2187 2168 2129 2454 2201 2522 2371 2566 2479 2834 2755 2966 2851 2840 3341 3240 3539 3476 3557 3670 3567 3690 3685 3796 3529 3692 3513 3694 3515 3490 45
157 328 309 326 347 382 365 428 473 502 513 504 535 584 557 586 671 658 757 804 767 764 935 972 1031 1182 1041 1280 1423 1372 1611 1374 1653 1690 1657 1742 1969 2046 2069 2076 2125 2198 2185 2336 2453 2460 2523 2756 2519 2480 2839 2836 3015 2850 2841 3344 3555 3560 3537 3680 3673 3678 3691 3684 3695 3530 3493 3500 201 3504
140 311 158 341 332 367 348 417 380 483 496 509 528 505 536 625 656 613 670 659 760 933 940 765 936 983 1174 1221 1216 1281 1618 1445 1658 1621 1734 1695 1980 1991 2052 2047 2070 2169 2128 2455 2200 2521 2370 2459 2478 2835 2518 2481 2842 2837 3342 2515 3538 3477 3556 3671 3566 3681 3674 3677 3512 3683 3514 3505 44 3489
159 156 327 318 325 340 333 374 427 474 503 482 495 534 529 600 587 624 657 612 669 766 763 934 973 1032 1181 1040 1179 1424 1373 1612 1619 1654 1691 1656 1741 1970 1981 1990 2075 2126 2199 2184 2337 2458 2461 2520 2365 2464 2477 2838 2517 2484 2849 2844 3343 2514 3561 3536 3675 3672 3565 3682 3531 3494 3499 3488 3497 200
154 141 312 161 334 319 368 379 418 375 484 475 508 481 506 589 614 601 598 623 660 761 668 939 982 937 980 1175 1220 1217 1432 1617 1444 1613 1620 1735 1694 1979 1988 2051 2048 2071 2170 2127 2456 2183 2344 2369 2462 2351 2364 2465 2482 2843 2516 2485 2848 2845 3478 2509 3562 3535 3676 3481 3564 3511 3506 3495 3486 43
149 160 155 152 317 324 339 336 373 426 419 424 485 494 533 530 599 588 615 604 611 622 661 762 667 974 1033 1180 1039 1178 1425 1218 1431 1616 1655 1692 1441 1740 1971 1982 1989 2074 2049 2072 2175 2338 2457 2352 2343 2366 2463 2476 2359 2468 2483 2846 2473 2490 2513 3534 3479 2506 3563 3532 3509 2502 3487 3498 199 3496
142 153 150 313 162 335 320 369 378 337 376 487 476 507 480 493 590 531 602 597 616 605 610 621 938 981 666 979 1176 1219 1038 1433 1614 1443 1430 1437 1736 1693 1978 1987 2050 1983 1976 2171 2178 2345 2182 2339 2368 2353 2350 2363 2466 2475 2358 2469 2486 2847 2508 2491 2510 3533 3480 2495 3482 3507 3510 2499 42 3485
3 148 145 164 151 316 323 338 321 372 425 420 423 486 477 532 479 492 593 606 603 596 617 662 609 620 975 1034 665 978 1177 1426 1037 1436 1615 1442 1429 1440 1739 1972 1977 1986 2073 2176 1975 2174 2179 2346 2181 2342 2367 2354 2349 2360 2467 2474 2357 2472 2489 2512 2507 2494 2505 3508 2503 2498 2501 3484 39 198
146 143 2 5 314 163 166 7 370 377 168 9 488 421 170 11 490 591 172 13 594 607 174 15 618 663 176 17 976 1035 178 19 1434 1427 180 21 1438 1737 182 23 1984 1973 184 25 2172 2177 186 27 2340 2347 188 29 2362 2355 190 31 2470 2487 192 33 2492 2511 194 35 2496 3483 196 37 2500 41
1 4 147 144 165 6 315 322 167 8 371 422 169 10 489 478 171 12 491 592 173 14 595 608 175 16 619 664 177 18 977 1036 179 20 1435 1428 181 22 1439 1738 183 24 1985 1974 185 26 2173 2180 187 28 2341 2348 189 30 2361 2356 191 32 2471 2488 193 34 2493 2504 195 36 2497 40 197 38