Openjudge-NOI题库-二维数组回形遍历
给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:
输入的第一行上有两个整数,依次为row和col。
余下有row行,每行包含col个整数,构成一个二维整数数组。
(注:输入的row和col保证0 < row < 100, 0 < col < 100)
输出格式:
按遍历顺序输出每个整数。每个整数占一行。
思路:这题和codevs中的有一题“蛇形矩阵”非常类似:http://codevs.cn/problem/1160/
可以选用差不多一样的思路解题。我是按照矩阵从外而内一层一层输出(如果你愿意一层一层地剥开我的心~咳咳),具体过程如下图(7*8的矩阵):
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA20AAAGCCAIAAAD8HbzjAAAgAElEQVR4nO2dP8gkTX7f59CBjY0xCpRtuJGd2MJne8AYh2YxZnFmjMwZxARCxmIFq8SJBMIgJDp5MetbHJj3pFcHTpyM4dZPcrzCySGcKPF4XwzaDcyywbLGz+6r3bcdzExPd9Wvuut/VVd/Pkxw97y909+prv7VZ6qre3Y9AAAAAIA7u9IBAAAAAGCV4JEAAAAA4AMeCQAAAAA+4JEAAAAA4AMeCQAAAAA+4JEAAAAA4AMeCdA+n549fvvg4dsHD989+6Z0FgAAaAc8EqB9knvki6cB7//N/aOH53/+9sHTj33/8clDrNcaWg8ASoJHArRPao8c3OXto+efrJI8vn/Z933fv3z+7sGgQeVNSP4g15BR8qgtEEK21nv53H7bDG0IAPWARwK0T/L5yKslvH8xu9l12nLY7OYcZT1SFTJNiC0/4CJaC4RQS+udydaGAFATeCRA+9SxPvJ6BfbJnfqXabBiHvno+adBhrSJ1Wuqpx/9d6O3QAjVtN6ZTG0IAHWBRwK0TxUeeZmKG1/PHUxocpG35Ao/swNFuDIrtEAI9bXemaRtCACVgUcCtM/gkeJr9jrjVVZmFz5qnqr/K/UvYqTzPxdNSNtemNMaXed9fP/Sy55nHGh4/6U1oAaElhwCv38xuS68GLjS1juTsA0BoDrwSHDl7n2EGYUobwK2+HvkTW7mZtFU57iuAhy9uXrE3Uxo9Iaj1zjS5f3H//X9k8geGTahKPT5kUeq+ecXEVbaemcStiEAVAceCa7ow6E+CC0OP3hkZM5tbvqvAde1I81HaveXOJvQeE2h9pgh7Y4T+644Zd6BDHeK3PauLv0c2ZJ0h81cbLsGr6v1pq3k1IYAsFLwSLBElsW3Dx7fv/T3SNOLMcYSvenEzVKvj1x+f3kW6naniGhX5rTX/nPRo1F3ugnT7Y/GSVD9fhc7B1q+ZHzZcnT5WGoB/RE5t3czLQCQ7lLK03rp2hAA1gseCZbMeKS8JR6ZjpmmE7cv7pGGhyY6mJA8Z3Y2ldvF9+myP23iLdSBhL49nnccPxJcfX+xBSbrIw0BonhklNZL1oYAsGLwSHBlcRhw8EjGEldcDfJMcY8Mm480f+tQTGgqLtHvszEu6hhvPCxGVN5hdj5yxiPN1Nd6Vh+Bcx+gKfBIcAWPLICfPg5U45HKTLOdCQ1mpl91vZiKdBHW5fbnG+muyc6uj0zokTlbz+YjcF0boC3wSHBl7rbT8Wt2DZn5xQNBRgTq40D5+2xke3AzIeG+kMv7axeUzV1RRv8tFrFDhvwajdQCOT0yYespydO1IQDUBx4JVszd0fnkDo+MSyx9HIhwjTL0uT+ij0a6MtuLEvP03v5T2zlQ2M+xLD0/UkmS7bq2/PFvrWf7+XK0IQBUBx4JVlh5pHnkM9xmMcZq3qt5ohvkmfLzkXIfsL5TZOIoo0cETFKNhenpR6dPbeVAym3OzugtkMUjQ1vP9uNlaUMAqA08EjxQL23jkYFE1EeHqd/RK3CxmpWx5V4YZ3xyjR8WfXiJNS0NvLVexDeN0IYAUBl4JNhyGQMePf+06JEvn7+bDhV4pEiK2cd6PfK2WYJrmsqjtieza1GsJc6dYQlbIITZ1ou3G+6uA2gQPBJsGcniZMXVu2ffSB45udzG+sgxKfSxKPIF1tktY4uU/NN/sS6hRvySk6wFQkjbeme2+EURYAvgkWDLRRaf3PUmjxyGRu1ReXjkmdYMUl0SV+56pcmEmu5O0aD1AMAXPBIsGeZRbuv0jT8T8qC+GZeitKaPA1OPLHq9Un94DYvw7KH1AMATPBIsEZ4eov06nHEc+vhE+THfyczlZJ1lQ1MgzerjQMjTqgEAYP3gkWCHdOXL+QHFT+6mT0WerBUTnoGyTtrXRwAAgL7v8UiwZHSfqfmxxrJoqjcWTG7KmTwJRXys3ZrAIAEAYFPgkWDNi6eGJxubXoZnQV+mJM9aebbMp/cvJ7+Dsq4pSfQRAAC2CR4J6Xnx1HqK8e79g4dvn9x9ermCxXboIwAAbBw8EsAN9BEAAOAMHglgCwYJAAAwBo8EWAZ9BAAA0MEjARZAHwEAAETwSIBl0EcAAAAdPBIAAAAAfMAjYQUwHQjr59Ttd4dj6RQAAFHBI6F2al2YeDzsruy7U+k0fX88FI8xapKyrXLq9qMgVcjbOVKpKNMGqeAQjbtKmRTTzlo6DcB6wSOhdmq8x2UqBcdDOUMYC0LREfB4mAYo5k2nbl9HkDGnbr/f70t6ZFeDTPd9fzkgtyN0PBTpuuLs8PFQuqMArA88EtZBTSqpDITXvxQdgVSNK7B7aVTOn0nVyF46Xpk5dfvDsWgfOR5q8SPN3wp5pNAiWCSAD3gkrIZaVFISguKqUtYj5Y9fxJykKIJb5uSsLGU9sqvkaq34haMAp+6gtMip23NJG8ADPBLWRA0qOeNMhScEC+9e23/5WdpbjpIrAc9NgEfW0yMEmIwE8ASPhJVRfLmkYTVkyUWSfXGPlKhDGgqnuN39VDLIefZtcmdJkc4y9NLJfT/F+wiTkQAB4JGwPoqqpGniEY9UKH0F82pNZVcb3PZe1iO7w2S+rcz0+WWv3aRnFFofOeF4KJ0AYL3gkbBKyqkkHmlDRc9KLLfiYPokprIeqU+3Fegxl1nI2tY/VNRZAVYIHglrpZBK4pGLVDcuF7rhZ3onR2lb0sjfZUyPYCrbNIXvwgJYO3gkrJv8Ksn6yFmqk8i+LyEqhgd/17MisIQ/GaeGS66BQCMBwsAjYfVkVsmKnnEzog6PrPV2hdJ30w8ZyvQQ+eMX6DKmL1sFPbL0iQuwevBIaIGs17ilwbC4qFTgkdJMpP6YvtSYn0BUQfOUEZbz3GgVqxJlkSw5JVj4OgLA+sEjoREyqiS/ZyMHECeaMreKuASv/OEpG0Ka7isUR9L8khopOzYA2INHQjvkU8l6fl97Eqjkw7YNy95K/OBdJT/0rVC0l6gmWfBhO+fnMU2f+1Oy45Z+NhTA2sEjoSkyzkqOnupccBiS7uco81zAmu4omTxxu7RD6q1TUuDKd1k1StHDU8u3DID1gkdCg9Tw84kAAADNg0dCm6CSAAAAqcEjoVlQSQAAgKTgkdAyRX+JGwAAoHHwSGgcVBIAACAReCS0DyoJAACQAjwSNgEqCQAAEB08EjYEKgkAABARPBK2xVglTc/OBgBwpXRtAygDXR82h3KNu/ToAwAtULqwAZSBrg9bpKrlkvWMQCTRIYkOSRTwSNgydH3YIrvdrh6VrGcEIokOSXRIooBHwpah68MWOdf9SlSynhGIJDok0SGJAh4JW4auD1tkXPeLq2Q9IxBJdEiiQxIFPBK2DF0ftohS98uqZD0jEEl0SKJDEgU8ErYMXR+2iF73C6pkPSMQSXRIokMSBTwStgxdH7aIWPdLLZesZwQiiQ5JdEiigEfClqHrwxYx1f0iKlnPCEQSHZLokEQBj4QtQ9eHLTJT9/OrZD0jEEl0SKJDEgU8ErYMXR+2yHzdz6yS9YxAJNEhiQ5JFPBI2DJ0fdgiNnU/m0rWMwKRRIckOiRRwCNhy9D1YYtY1v08KlnPCLTZJDOHeLNtMgNJFPBI2DJ0fdgi9nU/wzXuekagFpOcuv3ucJzbYv74ttgmoZBEAY+ELUPXh3VxPOyu7LuT77s41f1ZlTweAmIMYYL+/ahJwlolNMmp24+CzMtb2iRKJHuP1FUyJMm0QUIPUYQ2GXeVsNMnRoLybaIcIO8ui0fClqHrw3qYSsHx4F/5Xeu+qhrj8aeoRx4P0wA23pQkyanbRwwSySNP3X6/39vFMNlkmEd2ITKtENYmp24/7irHQ0DX9U8izg4fD6V67LQF/CsKHglbhq4Pa0Gv+6fO0hE0POq+6BmqxnnhPwIdD8LnD8gU5gfKTvXjlSXJJMDh6NJHxEMcZvlBk7IKoTOjkyyFPFJokQCLjH7uCN3YNgYeCZuFrg8rQRICb1XxrvuKZ/zXX/3egx/8zv9688bjrcZh/P6h/PH97TrQIyWRLOiRZ2VxbA1FJd8+eBjkkV3od4wxgVeTIyptQI89DC3y+d27v/j5n778tz8oshLDsGx2eTWtKQYeCZuFrg/rYMaZPMahkLqvq8bbBw8/fPnV51ev/d4wbE5F+/hFPFIgRCPDk1wnvrxaI9bNVZV4ZECPiJxk4P/9+/8wNO///PXf/Iuf/2nuJCO1/u7Dh8+vXn9+8+a8EoL5SAAn6PqwDgxrlzyXNAXWfVEl77945vducUegEGmIlyRUXQKT3O5+8g0SQyXPs2+TO0uKzL0NKx0mt5WUOzpjiTy/3v+Lf5U9yWUF75/87Ovbt8Hf+icPfuUP/WLgkbBZ6PqwCkwTj2U88rsPH0SV5MWLl9/L70wMvPfoj3/5rygx/L4N4pGwZej6sArq8sjPr14XH3d58Wrp5Xcmpvg26BcDj4TNQteHVVCZR755U3zc5cWrpZffmRhyXftHP/h+rCQz9cT7owGsBTwS1kFV6yP7vv/w5VcVjIUDnveZJkgyIv8dP4YHf/utCIxycMWIfqskfY+O8WY077u4A/vJ//313yx+7py6/S/98CeiR0a8zyZ25wGoETwS1kHcZ9yEe+TnV6/vv3g2Hn6+/emd31sF25vnTaYJkkwJeIJktCQF79eWP77/4z2D7rOR2qCUR/7Fz//0//yDvzFu4fvf6/zeKsStD0f522DE5z/gkbAF8EhYCdJgmP/5kUKowr+LKM1Ejh/TlyeJ+QlEq/NIxSpCZrxMbZL7qUyySOafGV1KlC/J5azRvw3+57/1V+M+RwyVhObBI2EtFP49G5HiHin/GIjv76gEOpNk+aWfQFTw92yk6b5CbSJpfsDzPWPMoAuOnTPJ+ODcjniC6xt4JDQPHgnrodzva88GCh0OQ0zFsOwtvx/E/aHveB5p3UtM17IDLX+y76AfIwxrk/NTLG9hgr4BBR+dc5qSHjk+GMNBT/H72gmW2ALUBR4J62L0VOeAYSjUI6X7ObKPyjM3lZSZBZw8cTvsqmW4R+qtM3OAZhZEhiaJ9hjyWPYW4fBEmo8seF17kuPmkQFfe2aS4JHQNngkVES2UhtpPjIOJNHJmWR+xmibbTJPY0nCPQ+PhC1TSzkAyFlt8UiRbSaZ73jbbJN5GkuSzSNRSWiSWsoBbJzMpRaPFCGJDkl0GkuS2iOj7AKgWmopB7BxMtdZPFKEJDok0WksCR4JEEIt5QA2Dh5ZAyTRIYlOY0lyeiQqCe1RSzmALZO/yOKRIiTRIYlOY0kyeGSUvQDUSS3lALZM/gqLR4qQRIckOo0lwSMBQqilHMBmKXLFB48UIYkOSXQaS5LHI6PsCKBCaikHsFmK1FY8UoQkOiTRaSwJHgkQQi3lADZLQY8EABhKUOD7LJYdPBKaBI+EkpS6jdGy7ueBJDok0SGJTpQk2eYjo+wLoDZqKQewTUpVVTxShCQ6JNFpLAkeCRBCLeUANkjBZ6rhkSIk0SGJTmNJingkKgnNUEs5gA1SsJ7ikSIk0SGJTmNJcnpklN0BVEUt5QA2CB55hiQ6JNEhiQ4eCVCcWsoBbI2yxRSPFCGJDkl0GktSyiNRSWiDWsoBbA08coAkOiTRIYnOGj0yyh4B6qGWcgCbovg3cjxShCQ6JNFpLAkeCRBCLeUANkXxMopHipBEhyQ6jSUp6JGoJDRALeUANkXxGopHipBEhyQ6jSXJ75FRdgpQCbWUA9gONRRQPFJk40nEnrnxNhFpLAkeCRBCLeUAtkMNBRSPFNl4EvFq48bbRKSxJEU8Msp+AWqglnIAG6GShUF4pMjGk4w759A/N94mIo0lwSMBQqilHMBGiFQ6j4d9dwr49851/3jYjTDufLyZdcKoSab/2TFN9DY5dfvxNoej7XsnTjIXRFFJpyR2exnFdenGCZJc8zieTVGSfPfhw+dXrz+/eXOO4NxZ3ZOYsg2H27p7CjE8kuCR0AZ4JGQlqHSOR6SMHnk8THd3jnE49pOx8NTtx5sdD9YhoyQZ/UWThuPB0uBiJlEb5PKPSiRRt9GTKYgTk0ucuv1iEPWvDi3i0CYuSbzOpvAk3/7s66F5f/6P//qDH/zOUtzAJAJDrxiSeJcVP4/sa1DJl8/fPXj49smd8McHD9+/sH+ju/cPHr598PDds28iJ4TqwSMhH7GKpqoO7jjU/eNBGNOOh91u/8d/fBsL//yHf/vBr/yhskVkjzQnOe/muw8fPv/4Xz75yRtti9imspTEuI3qFcWSLHYhZ5UUPpruq4a/xHWmpSSTiUCvsykwyT/65SdK8/6PL55N/qF1Jn+PHPWK23ykb2FZr0d+evb47YOHbx88vn+p//HpR4d3wiO3Cx4J+VijR8pzV6fu1/7yX1HGwj/618/kt7AIE5Jkr03wfPjyq8+vXg//PfpVwvkkt/8n6JHhzymTiKpp04fcVFKKIk7HKVkWJ0cHXOzNmETvJ4k9Ukvy+39faVihea3t2tsjx73ilsG3sqzWI0X5u/xReCnTltJbmV4uU5uwMvBIyETEO2yyz0eqe/vuz35/eSx0CeOd5Dzi/t4ffK0kub9M8DhMRkZJctuZrG+2WhsviWEK1E7fwo6vqJGy9do0SsA13EuSsUQO/SShR0pJfvSD71fgkZNDc8tgL/VaDO82KamSL57q844fn5h1EI8ECTwSMhGxXGb1SImXv/13xVo5uaXA2t9Ckpy6/V/63q/OlG9evOZfGT3y1O13v/TDn4gx1O3szp8UHunyzesWY4Ue+c39o4dvz5ORL5+/O6vexSynymi1XJLr2tsFj4RMRCyXpT3y+OQXfkEcC5XpuOj32ehJDrvd0x+/Lu4ivNb7yuGR19uxz/v58OVXegxla0uXC/FIw3XtYh75NrNKjiYjpTnIYcXkRTffPnr+ae7t8MjtgkdCDuIWyqIeeVnhtzQWZro2dzj2n9+8Ke4ivNb7ynld+3zd+Edfv77/4tk4w7c/vRtvkur5UCPGd8oPMS6XE/J6ZF9oSvJ6M43+enp//k+Pnn+6KaZ6z435n2uvBQGF1YNHQg7iFspyHnkb5D6/UsfC//7TO31jmzEpMElvmOCxvTU6apKZv5+vGVpGiplE3fHxsNsdOrdViUrbOgSa3nok7dL24T+B6x92u8PPpX6Sd33krU2kxnSTyKAko14xJLHvFXqM1Xnk7RL2yPY+PjlfvFYWO07u5j6DR8IAHgnJ8RiA5ynkkcIgN3wuMY/l9bnwJLrUfvuf/o27RkZIMv8f4t+bbJGk73vhAfHWT27Ux0XHUNM7xw23jqf2yHOSpz8WJgIze+TQJlp7OktkaJJrr7glcXqe5zRGFI/MrZL9zSbVtY9Ty9RXRooPDJpieUEcVg8eCcmJXiJLeKR8o/HNI6XRJ41HWt3y7PBYwiRJTE5ge+hStInyD1yf++PTgae7sXlK0Qzh9iZ+4CIeue9O01Z1PoIRklwZkvjerh3hd1YLeeRV9UZ31cxMNI5tEo+EATwSkrN+j5Ss6NQdRmOhNI1h+9DtKEmU7fwmVuIlmbvYXapNlH8y3zzOBml+ApHyI0fJnx9pk0TZPJFHziYZta3HEXRMMst4KYjPbOR6PfIy6XhxwalBDgsirzr4YGKceCQM4JGQlhT1MbNHys9gPB7G1+aEATP6b7fMJpnitBYxSRLj4yNjz71ZtImmb7MdyG8aUnxijPZxc/yejV2SG+k8cj7J0LzWvdo/icStV4y+Deb+XcQx2VVSfeLju2d3948evn30/NPtovZNEz89e6z9X9ZHQt/jkZCaBMXRU5LGONT948Gw9HHfnWaeGOIwOkdJov0xpUdaJdEnoxL8vrZHktknMukGae0HNj/0nef3te2STP6jW1eJkmRoZOteHZJEzqbcZ+NdUyr0yOW3uj4VUr9sPfsYoAt4JAzgkZAQ10mdBSaP+R7fNOGMdd2XdnlBv+d0fDNH9GeXLCSRNk50XdshibJpsTaZbGg1E+mY5MKkBxg/7mgrl+4bOUnA2RQlyXhNiE1fCk+icm2B8Bp1TuyfpO/7SB7pMpt+vu489yPaN1nEBcEMHgkJKbPox4Iodb+P9AGjJIkCSfSjSZvoNHbuVOKRIUlmpgPDU4l8fDKslTxfH7/66Iunb0dPI//4BAdtn1oKEzQJHmkZJjxJFEiiQxKdxs6d9XpkDH0crZJ8cmf3E4ija+JP7oYnBL179s3oppzJz+Tw49ptU0thgvaoViJ7PNIASXRIotPYubM6j4wy+ygsgnxyZ1j1qFz7nsji7a3O845XxXz37JubpDIl2TS1FCZoDzzSPkx4kiiQRIckOo2dO/V45HyYuBevr8oorY9UfupmapODa95+Snv0U93Dssv7l9+M34opyYappTBBY2RYoBMCHilCEh2S6DR27lTukXH10YPLdOPoWeX9i6fWU4x3788znS+/Wd4W1kkthQkao2aJ7PFIAyTRIYlOY+dOnR5ZXB8BLKmlMEFL1F/y8EgRkuiQRKexc2ctHhnl/QGiU0thgpaov/DhkSIk0SGJTmPnTg0eiT7CeqmlMEFL1F8B8UgRkuiQRKexc6eUR3IJG9qglsIEzbCKIriLxPBJY70hwEao59yJlcSy+NiIY/0lFGAAj4TIrKICOtX9GeqZU4kCSXRIotPYuZNnPtJp3nEVVRTgTC2FCdpgFZORPR5pgCQ6JNFp7NxJ6pF+l63XUkgBejwS4rKW2odHipBEhyQ6jZ07KTwyfNXjWmopQC2FCdpgLbUPjxQhiQ5JdBo7dyJ6ZMSbZtZSSwFqKUzQACu6FoNHipBEhyQ6jZ074Uki6mPcYAAZqKUwQQOsqOrhkSIk0SGJTmPnjneSRPoYHgwgJ7UUJlg7K5qM7PFIAyTRIYlOY+eOa5LU+ugdDKAItRQmWDvrKnl4pAhJdEii09i5Y5lkXh8THZ111VXYJrUUJlg766p3eKQISXRIotPYuTOfxGb2MVY9cc0GUAO1FCZYNasrdnikCEl0SKLT2LkjJnG6cp3BI1dUXWFr1FKYYNWsrtLhkSIk0SGJTmPnzjiJ38LHdB7Zr7C6wtaopTDBelnjN2Y8UoQkOiTRaezcCb9vBo+ELVNLYYL1ssYy14RHnrr97nAM3yZPEjdI0mKSCTV4ZKA+jmNk8Mh11VjYDngkhJK1xh0PuxH77uT3Ns5137Df4bOfuv1OwCqg3wh03uO8H9hsky5JdW0yPojWXSdqkmk3Kt0mygFK1E+me7ntZFw3TNvETXLlOKuPo2Pk0kn8jo4leCTUDB4JQeQscMfDtLK7WtIIp7o/s9+RR3beMz4+I9Cp2+/3+/lPb7NNyiQ1tcmp248P4vFgbQkxk4gzg8eD5RGK2iZKg/SXNomc5NTtjafscO7MbBMvSd+fuvnr128fPFT2bd8ieCRsGTwSgshX4I4Hw/yOz6SkQ92f3e/w8Y8H/yuH7iPQqdsfjqdu1hFttkmbpJ420fwtqUeakwgtYm2RsZMY3DLqzKjwhjd/Hc6dmW2iJFm8eD022ul+bc+fbB6JSkKF4JHgT87qJo8tjp40YF/35/d788jO9xK7hx+cdWT+s9tskzhJNW0iSlOBJKfuoLTIqdvbfw2KmkRcMmm7ktLFIyVJVD3SuE1Ikhl9VN58nERoKIsoqT2yZ0oSKgaPBH/yr4xUK3p6j5zfbwmPvE5qzX12m22SJ6mkTXz7SPwkwsYJ1wLOJpHV2lZrA5zppojm6mGvkUKSxdlH/RrGzS8N3xgXw+CRsGXwSPCneGnzVoTAuj/s93ZF7NCdpndRJJpnOh6ub2z+8DbbpE9yqqRNBm+Y3Mxh3SjRj86A02Rk7CTSKsSkKzW1KIbq4dZlhySL+jgw65HS6gyL3pLBI/sK6i2ACB4JnlRQ1PyvV4bV/dt+bx7ZHSaDsMMSL5dR+WYH5gHXZpscSU51tMllr92kr6RZH+nW8seD49Le2EmuXn3+by5zox5X2PUvEmoBkbZZxF4fJ1lMHinsG48EWACPBE9KF7Wgp+IF1P3Jfkcr9LUhyPoeIOskYzswrwVc3iZPEmm6rUCbXGzJe0VE1DaZ7t+x+0ZPctnuKnDpnzM6+SphKiA2Xzc89HEAjwSICx4JPpS+fzD00cq+dV/d72wj2EqT9R0/07s0bO7kSOORAXvJ3yazT7e0uxU3UhJ1764PGoiaRO3J52aKP1ssxFPXhMxsM2bGHZ2q0Ho9skcloUrwSPBh1RLZe9Z9Yb+z7WDrClZJDA/1nqz2s9kmT5LZf5y1TczTW5arIpK0iY9GxkwinkL26w6skswmHN+jNrNNv6SPHknWuz6yxyOhSvBI8KFcOXO9OUHGve7L+x3aQRqBI8+9CYmstC399UpxL7KVFGgTkwjE9Ei7JHb/MUMS0zexxEdnlGffneY90nL2MbZHej5ZDI+ELYNHgjNFJVLwFfWhfBY41n3jfsfzIulX4Omh6vVI+TppkTaRRTLqzKhlkvlE+ZKYPDJ2m5ifmbU3nDuuF69je2S9z48cQCWhNvBIcKZUIZPvKPX61RSnuj+z35krYvYK16RHitN9hdpE0hnrK8sJjo7TWsQkSYyPj4xq+eLSVH195G638177GNcjNWl0WESLR8JmwSPBjWJ32ExvQr39Nf3vIs7sd2gKdWB2eLCMrx/YTGo5TnzFTVJRm5xvSZ4+96fc0TmnyeWRchL9YKT4fe2Zn6ZfmHq0LC/ubSJI/G2PU/Ot5/e1xxSrwAAG8Ehwo1AJm7l9IOlzyBf2O2kNz0duO4+FeiZ9Zzbb5EhSUZtMoqRza4skplvIcydRNkj2vHp1J0u3zji0jEMS6VSWfllnlNe6w543t04dCh4JVYFHghttlLBYdT9Ka+QcgeYhiQ5JdPyShM8+xkpiCub9DngkbJlaChOsgmbqFx4pQhIdkug4JYly/TpKksWEITGKeGQDpSf6JjkAACAASURBVBgaoJbCBKugmeKFR4qQRIckOjZJFt2xnnNndR7ZN1SKoQFqKUxQPy19CcYjRUiiQxKdmST2U4/1nDt4JEAItRQmqJ+WKhceKUISHZLo6EkWL17r50jmc2dmd37/SYmR/+i0VJBh1dRSmKB+WipbeKQISXRIojMksbFGp/lI11PJwyOdjBaPBFiklsIEldNYzcIjRUiiQxId+0lHZfv5P3qcTX4eaXmF3X4lDx4JW6aWwgSV01jNwiNFSKJDkgFXfRT/rekvTu82EHLn+Ew21zxFPLJvrizDSqmlRELN+JX4msEjRUiiQ5IQfdTfxPQXv1PJtU3E/DPZLPPgkbBlaimRUDPtVatdJIaWifWGAJUwo4+Bb6j/3/A394ih713fwOmdi5SyxiozrBE8EpZp1SPD34f5yESQRCdPEpvZR78kyluZ/rcT4UlspidtYtTTTwAyQ9eHLYJHipBEZyNJnC5eeycR3dHvQnmsJCa7xSMBLKHrwxbBI0VIotN2Eid9DE8yszu/kyikTSKGwSNhy9D1YYvgkSIk0WkySaA/pbA3v3cLbJNYYfBI2DJ0fdgieKQISXRaShJx+i16DL+3StEmfjHq6ScAmaHrwxbBI0VIorP2JNEvJXsnmYnk/VZxz+KQBqmnnwBkhq4PWwSPFCGJzkqTpNBHvyQ28Qom6fFIgDBmu/6Lp+dT692zb3LlAcgBHilCEp11JUmqj05J5omVqpKzuJhHMkZDBcx1/U/PHp/76PsXyfZ/PQ0S7sKBb+4fDdXt6ce+//jkYbtn6aY+rAoeKUISnVUkyaOPNknsqefcWa9HXsfox/cv0+wgaIDe9BCThkqbdK7rXyMm66OjVnj76Pmn2S2TnzAvn7+bFN/CB0lumWvI0DyVfdj84JEiJNGpOUlmfZxJ4kE9585qPXKwiqcf0+zAf4CubIhJO572fd+Sorg3y6jrqymtXqHpLb/upJ+2vPWzsv1ePwrKCXzdIKQpavmw5cAjRUiiU2GSUvqoJwmhnnNnHR55HQSdXqEjpu8AXcsQk2U87fvmFMWxWUp7pBXXb11P7pLvYvqJivX7R88/DYdD+yJ4TeX9HbSaD1sOPFKEJDr1JCmujwONnTt4ZBj6AF3NEJNjPO2bVBSnZjF2/QwXtW25nD9JkwwHabKXkmpl7vfBs/H1fdjsJPbIU7ffHY4OYbx27raXlElsyNMm8SmeJFgfK+0nRc8dmyQO5L+unePuBUuEAbq+ISbheNqoorg0i6HrzzS6LdePPfsOw8lwzar/K+F9pm0nePrwtjan2XhjZZ5VPEja9oKwj6agH9+/1D+mBbOH4PL+7ken0g9rzanb7274D47Odf94GO13t+9O5z+LI9A5ZOqxcGYv3q1kn2S6C71hHNJmSOKaNl2SC+PuZEgRrI+TVKX6ycxeyp07x8O0zaUk6jaLMfzOYl/u3psLsh2pBuhKh5g042nf9w0rin2zyF3/lsN7nvZ2lXxO0tX0o6n7a+NeThjDXO7z99PGff9CaPT54+R2kOSLC+PPePde+6/vn0Tu995fgCr9sFacuv1kzHUdcsY41f3jYWfasTACnbr9fr9PPRYa9xLUSi7O1Dk0fMo2sUniljZlkssBuR2h42GqkiZx1JXLMpOp5ZVercSax7pN5npj7nNn7LMmjzRvsxgjp0dGmIVKNkBXOsSkGU/FFuibURTrZhG7/k2fA+bMI33dkZavagtOR69Hj4VVnrM27HyQxu+mPb5rLlvEfm9YBnvbu7pU5dIVKv2wNqhDUu849k1wqPvHgzCuXQfh4cOOIh2Opy6xR5r3EtZKLm5t//nStolNEpe0aZNoV20vHjlzHg29K2Y/kXq1+n3JjG2S2d5Y6NwRPqaWxKEphhj5PNJOAZdINUBXOsSkGU/FFliIvSJFsb7bRur61ut5w1dmLE9QS0Y8aojrhO0487Wj6Lf6q8dDWhcs9gZzf72q/eWtRqZ/e/PbH41f2vRuZNfvl2ezL1uOZ7Zzf9g4SDokjFN22Nd92cKuo506Ap1VIvVYOLOXsFZycKbOutkTt4lNEoe0aZOo+jZfYL2TDHsztbz45cjenlw80tgby5w7q/fI8RME518RHgbkN0BvazxtVFFMzSKid337bprDI8VnMkltNzSE8EUh7kGSdf68i9s3xek5rH0nCO33wlz6+HuSdhAn75/7wybDWyNd5yO1vcgeeZ2QSjsWuu7FoZUSeGTyNlmRRw5tMFNUoyQ5xzG3vKFLWM9cBzjTbdclzp3znlbskeLUlOGVwyMND03c0HjaqqIYmkVG6/rSJG26W8MC5yNdD5IZy4OkLywwHKTpHqOvC5YO8N17ZWPjx6/vw/rgOOBMCaz7uhD045X5KcdCx724RXFY93boTtObj8RhN32b2CSxTZs6yfGw89BH9yTnfc20/JxH2hwk33NnEiX/uXNmxR6pXCo0jGsxHmRzIfF8ZBPjacuK4umRyhSouo9yHrno4FkO0vCG+oTwZRfS/PDowZzR13N4uVp9H9aJ60jtNxN5Jqzu364K3kag8f2d6cZC+714tZKDM3WHw3jn4lRWjjaxSWKXNnmSk6SP4nR3YJLFljccjHOfSeGRUm/Mfe6Ms6zRIxcfqX2lhEcqblDfEJNuPG1YUfyua5t+2MfLIyMt45U+SfGDJCxZvexiYVXAcjedeRq89N0o8GdPC3/YMPzvsgmq+5M7JYYPO3lKSKqx8Oixl2T34WrvqY69PmnTJLHZJkOSU7ffKb5y/bNVy0TsJ8eDLozXe5UTzkdOemPec+fGWj3yVpDv5sdWO49MOEBXNMRkGE8bVhTrZhF+z0Y/Nj4eGe2xAosPZzpTx6RxL3bcp/f28/B2/T7sG2c1HzYY72vbvnVfvd12+ODK/FeKsfB83dRjL/ZxwsZCRZo800ZPErBN3CSmy8a2TROzn5yzTB8/dOgyrI8U1oRk7idr9cj+7v2l4C8ooNXokHKArmiIyTmeNqco9s0y6vrnjyTdf15yPlKaJS13kJRj8Pj+pTJprIS5HAOH9RxW/V5efmBNNR82HF+R9Kr7wi9tDEdnZyKWHxgecm21l/gzXsbdXAbfkLRxkwRtEzeJcWpYvnvaL4lDy2sPQ5dmKf2TzCYc36OWuZ+s1iMHYnhkygG6oiEmx3jaqqI4NMuk6398MnlHm1cOVwj/2aLCRH4Ujmn5QR0ke+6PiO+1bfe6L121NP2iWp65N/u9RL8PV37D2cE3UZvYJPFImyaJydNieqQhmPW8deTf+JnZTalzpx2PXHhFWB9pRe4Bur7xtEVFcWoWoetX55G3SLlOjBCUp4BOxD+K+dneQpWD5B92hPn5O+k9UpiJPF8+rM4jw1rJMol6UXQmj+V/TZnEJ22aJAaRTDwz6vJ8KMsjZJtktjfikb5U5pFJB+iVjKfNKYpbs2T9afkAhjOn+uM08xR37x+ZvGF1MSIfaT/sBHFxWZ71kceDPIkkPIfcK1ZEPwhsJRc/EFfcmfeSqE1sknikTZREFCvr53tG9UhNaV3UycmtTb0Rj/QlynXtNJGi73Q142lLiuLcLGvxyPVgOkiVmF9csn7YmZ+5dsah7k9vfh2FEX8XcUia3iPlvQS1kpNbLwqSRdpMSZzTJkuiPVvHwVii9xPlinuCZ2rO9cZC544wcawlkSeX52Nk9MgtsanxNA8JmpSuHx39okOdCxmjkPvDTp7y7P0Ucoe6P3PbgjCnom+d4nrl4l68W8ktid2DvXO0iU0Sz8eQp2iTyUbpnGmh5Sf/2W1tiFMSU2/Mfe5Ip7L6yzrmbRZjuB4dsGNT42ke4jcpXR+2SKy6L8+puIcJTxIFkuiQRKexcyc8CR4JW4auD1sEjxQhiQ5JdBo7d/BIgBDo+rBF8EgRkuiQRKexcwePBAiBrg9bBI8UIYkOSXQaO3fwSIAQ6PqwRfBIEZLokESnsXNn7R4Z2IYAgdRSmAByEqXuK89NCAkTmCQWJNEhiU4l9lZPkoIeGaUZAUKopTBB5TRWp8LrvvgILu8wIUkiQhIdkuhUYm/1JMEjYcvUUpigZtorVYF1X36OKx4ZD5LoNJYEjwynvcoMa6SWwgQ10161Cqn7Jon0bqLG/CAKJNFpLAkeGU57lRnWSC2FCSqnsYK1C2BoivH/Hr9C3hxgI9RzvsRKkr+ONVaWYaXgkWBFYwXLu+4rU4+m/+0axiNJCkiiQxKdKEmYjwyksZoM66WWwgSVE+XG5Hrwq/t6I4ge6dpEjflBFEii01gSPDKQlgoyrJpaChPUT0tly6Pui5o4o5VOYZy2TwdJdEiiU4m91ZMEj4QtU0thgvppqWy51n3TXOOiWVqGsd84KSTRIYlOJfZWT5L8HtlSNYa1U0thgvpp6dK2t0cu/t2jlRrzgyiQRKexJHhkCM2UYmiAWgoTrIJmipf3dW3xj4uTlIthnJKkgyQ6JNGpxN7qSYJHwpappTDBKmimeMWq+/PzlPZhwpNEgSQ6JNGpxN7qSZLZI5upw9AGtRQmWAXNXNpO7ZGuYcKTRIEkOiTRaezcwSMBQqilMMFaaKOE4ZEiJNEhiU5j5w4eCRBCLYUJ1kIbJQyPFCGJDkl0Gjt31uWRbVRgaIlaChOsiAYKGR4pQhIdkug0du7gkQAh1FKYYEU0UMjwSBGS6JBEp7FzB48ECKGWwgQroo5Cdur2u8PR8x834ZFBLRA1SXxIotNYEjzSgzpqL8CEWgoTrIvi5ezU7Xe7jB55POxG7LvT+c/jdjhHuuIQzW8EmmsBQ9qISaYf1rirDG1imaSeNrkFsg+RKsmoUVzCOPVYUx8Yzh3HdvNPckVt+Uk18+on543dkzhTvPAC6OCR4EPhcnbq9vv9PpdHHg/T8WRkcEM7dHvTJlZhHKIPOzC0wEzaiElOXbf0jqc8bWKRpJ42mVpVQo+0TnJthOPB/uDYJ5nrAyOPtEgbmmSu5Yck3v0Ej4Qtg0eCD0UfJHnq9ofjqcvkkceDsJ/rgDM0wl6VglO3txUF9xHI3AKzaSMmOR6W2l5ViD5RmywnqadNfPafKIl+LBzOKNsks31gZG/+qzM87E1v+SGJdz/J45FIJNQJHgmeFCtq52Enl0fK7nPd+8gjpQEzkUeaW2A+bcQkx27po0lRUrTJYpKK2mS8cVKPtDs6Vp0nJMlsHxjOnRe/+7tO7eCTZMSsR3r2EzwStgweCZ4UKmrXyYus85Hyur+xR2r/zF6ZXMfC2RaYTRsxiZMzjXNEb5PlJFW2SVmPnHFrm1ABznTrA+NrGn/+5VefX732eLvYHunZT/BI2DJ4JHhS5NL2bYV8No+UGHZuaAG3cE5JPFrAPo3DurdDd5rekrDkH4naxCOJW5pESVJ65HISw2pI20WSvufOrdW//dnX4wLy9sHDP/prv+ixcDSuR84lXoqR2iORSKgWPBL8yV3axvdZlvTI24I7tQWuY7eTITgk8WkBcXlgYJJT1x0O43edmcpK2yYuSaaZSrZJao9cSGJKlswjp33guw8fFImcnEQOy2hTe6RtP8EjYcvgkeBP3tI2fVpHMY+cPLXR1AIuQ6H9WOjRAm7PmHQwlb34YJ25j5ymTTySVNEmaT1yIUl2jxwl2+32P/r69ZxHqmkjJ7H2SId+gkfClsEjwZ+cl7bP1+rG/7+ER6pDS/gVsd56LHRvAecHlYeNhcuDf4Krya5JammTpOsjl5IU88jzvn/pF3644JHWzZPMI52/bCT1SCQSagaPhCAyFTjDo4ovuOukV90Xhpa5jx/3Tg7nFvD5tZuwsdDiNpoEd7e4JKmoTbJ75CRJofWRQ5Ddf/ytr2Y90vaWrDQe6fNlA4+EzYJHQhDFClzu+UjpWqGFRya8+3WuBeS00ZLIH81CjaK3iUOSutokoUdaJMn2LCRTvH/6239y/8WzsUR++9M7U9q4SZY80qef4JGwZfBICKVMjcvqkdL8xKk7dKfFJ4aU8Ehj2lhJznOjC09IMT9tJ2KbWCW5/ql8m4xI55H2Ryf58yMt+oBru3kmUUIZPdKznyT1SCQSKgePhFCa98jjQdrR8TB+fqRhVE65FtCwg5m00ZJIt7EqcU7ST8rFbxOLJH01baJunmg+0iqJLo0OZ5ST0S70Acd280syZsYjvfsJHglbBo+EUMqUOaffA9ZwqPvTm6RHu5/8LmLADzj7eqTYArNpIyZRR39h5inkR62jJqmoTQbkabisSabHI83va1v1AZd2806iRJi8/XAWe/cTPBK2DB4JEchZ6fQbTjxWvVnX/ZnbW9TnkE+e++yiuK4jkLkFFtJGTmLxyO1MbTKXpLI2keIkcSarB6KPNnI5i5ySWPUB5wfJuycxt/z4qoJfPzlvZ5vEBSQS6gePhAisrtjFqvtRPniiEcgDkuiQRKexJOFnMR4JW6aWcgCrJueDJKOAR4qQRIckOo0lwSMBQqilHMDaWVe9wyNFSKJDEp3GklTrkesqqrBZaikHsHbWVfLwSBGS6JBEp7EkeCRACLWUA1g767q0jUeKkESHJDqNJcEjAUKopRxAA6yo6uGRIiTRIYlOY0nq9MgVlVPYOLWUA2iAFRU+PFKEJDok0WksCR4JEEIt5QAaYEWXtvFIEZLokESnsSR4JEAItZQDaIO11D48UoQkOiTRaSxJhR65lkIK0OOREJe1lL9dJJZ+CQMAaifWWRyxQK2lkAL0eCREZxUVMFbdZz4yESTRIYlOJWcxHglbppZyAM2wigqIR4qQRIckOo0lqc0jV1FCAQZqKQfQDKsognikCEl0SKLTWBI8EiCEWsoBtET9dRCPFCGJDkl0GkuCRwKEUEs5gJaovw7ikSIk0SGJTmNJqvLI+osngEIt5QBaov4HSeKRIiTRIYlOY0nwSIAQaikH0BiVV0M8UoQkOiTRaSwJHgkQQi3lABqj8mqIR4qQRIckOo0lqccjKy+bACK1lANojMovbVdV9xsblaNAEh2S6FRyFldVTwAyU0s5gPaouSZWVfcbG5WjQBIdkuhUchZXVU8AMlNLOYD2qLkmVlX3GxuVo0ASHZLoVHIWR6knNRdMgBlqKQfQHjVf2sYjRUiiQxKdxpLgkQAh1FIOoEmqrYxNeOSp2+8Ox5A9t5ckPiTRaSwJHgkQQi3lAJokbmU8dfudwL47Ob+Vc90/HsRdTj6gYRubMG7p+76/tsasvR0Pjm2TIMmoUVzCOCWZdgw5iM02JZI4RImaZNpZHbtt9DZRE1l3Fa8eq54X47PYr5+ct3ZPImcAWBd4JKQlYn08dV2sOS+nun88TAe2kTcNn25mG5swLtmv77/f78U9jEfCDB65mOT6H44Ht4HZevfLDa8cnVO3t2+aqEn0PTu0Sswk4gzy8VAgyfDn23bHg3XXdeix5vNiOIvt0sox8EjYLHgkpCVifTweol07daj7x4MwlFzFZPh0M9vYhLFKcuPU7Q/HUyfbm/P+EyXRnWkpsUcSVVSk/UpH0L5xUieR/mGOJP4WGTeJ4LRpPHL87gaPtElrioFHwmbBIyEtMT2y87iCLWNf9+WR5GpEI480bmMTxjb3mbME1OCRM0mkP9pPBLqYijT4j/4kylt8y7dIYlhGaru6NGqSg/LZT90+/koMiySm4xM5yYhZj1xMa4wR4pFIJKwaPBKSE6tKFvFIeXJE8EjjNjZhrIP3t6mk8h45l2TGv21CBYzKgrwJeyyQxKRMtgoXM4mKw2Rk3CQOc9SRksx4pLat7VwxHglbBo+E5ESqkuc5lMn9AT632PR9H1z3h8Fv5qPZD5BOSW73CJT2yPkkhnV/tssBfY+OHmXOI/MmMew1/qpEmyTqFk49JWKSoZdObnCxFstwj/z2Z18PZ/GHL7/6/Or1TNqZGHgkbBY8EpIT6UGSp647TIZcp9slpoTV/du0kvlzOVytc0gyvtO0rEcuJDEdm2Qeef1+Ybu84Lx91iSjPMOuXeYBYycZb+fWUSIfnX3XTc6WfOsjxxJ5ft1/8cy63SYxvOsJEglrB4+EHMTxSH3SxMOV+r4PqvuT1WyGz+X2PEXrJNPnlZT0yMUk2T3SvGNpl1OZy5XkmmffnW5qlei5PzZJbv/V8cJyvCSXA5FrTUjfj86L7z58UCRSOZedlvPikbBZ8EjIQbJa6SmSvnVfHXOlz+U8LlsmUe+NKOeRFkmKeaQQ5+wq08fKHLoM6yP1hlH7hhotX5LJf3E9g+IlMS0vsBXJEI/8/Or1vEfa58AjYcvgkZCDSJe2dXxGwd6z7guCqH0oj8kdu7Fw+nxkFWmXqTzSLkmh9ZG3hPoyvCu36cBEM16mJGLniH8Pu0WS6d+dT6B4SYyf3nJdSJBHvnmz6JGWIuntkUgkNAAeCZkIrZjyiJNtPlK+FWH6oVxvV7iFcf43fen1kUtJ5p+XlCrJ3L5dN4mexPQdw/ZApWgTv9ulIyYx+XwGj+z7/sOXX9l45OLRwSNhy+CRkInAiilfAfR9aohj3ZcM4NQdutPoQxm3sQljnUQJVa9HmpclRrU381OZZnfjditupCQmj3R4uEykJMq2yTzSJomcIHabKKGub/351ev7L56NJfI3fv3Hc2nNMfBI2Cx4JGQi9NK2NEHh/fA5p7ov31N7PIyfHzmzjU0YyyQTKvdIYQSOb2/i8jptN5qquDRNxCTGx0dGnaO1a5PxtqmuazscHb/Hf0d6fqRLWmMMjyRIJLQBHgn5CKyb6jDs8HgQFYe6P701ebTvfTf6XcSZbWzCWCXR335uiPNRhMhJpiNzmt/Xtvlh82lHcew2CZMMf4n8/Ej7H3s/LxtNtz7SLon6DCYHzXfvsTPnhX27CTHwSNgseCTkI0LdjPMYcvu6P3NTyeQ55DPb2IRxCq9n0mf95jbIlqTvJwfM5XA5JZl0CuOlY89uEzmJ1miJnvtjk8TFlFInmWyVpE3szgu7tEIM13OnxyOhFfBIyEolpdOv7utE+ThRkkSBJDok0SGJgkc9qaQSAoRTxUkI26GS6olHipBEhyQ6JFHAI2HLVHESwnaopHrikSIk0SGJDkkU8EjYMlWchLApaiigeKQISXRIokMSBdd6UkMNBIhFFSchbIoaaigeKUISHZLokEQBj4QtU8VJCJsi2W8kOoBHipBEhyQ6JFHAI2HLVHESwtYoXkbxSBGS6JBEhyQKTvWkePUDiEsVJyFsjeKVFI8UIYkOSXRIooBHwpap4iSErVH80jYeKUISHZLokEQBj4QtU8VJCBukBo8MZ+n3bABgK9hUHiQS2gOPhDLU4JHh78N8ZCJIokMSnUqS4JGwZao4CWGDlL20jUeKkESHJDokUcAjYctUcRLCNsEjhzDhSaJAEh2S6JBEwbKeIJHQJFWchLBN8MghTHiSKJBEhyQ6JFHAI2HLVHESwmYpVVjxSBGS6JBEhyQKeCRsmSpOQtgseGRfzVjYk0SCJDokUbCpJ0gktEoVJyFsFjyyr2Ys7EkiQRIdkijgkbBlqjgJYcsUKa94pAhJdEiiQxIFPBK2TBUnIWwZPLKSsbAniQRJdEiisFhPkEhomCpOQtgyRR4kiUeKkESHJDokUcAjYctUcRLCxsEjw5NEgSQ6JNEhiQIeCVumipMQNg4eGZ4kCiTRqTNJWSmps00KMl9PkEhomypOQtg4+S9t45EiJNGpMEnZ3xTtq2yTBJy6/e5wtI2BR8JmqaUcwMZxKLXHw25g3528dufskeOdjnYrxT4eHFNFSWLcyCWM16g893lP3X4U1nJQzpDEIUrUJNOD59iPd7vd2CDtzpel3uh1NsU9OsqhcW2TiEn0VHgkwCJ4JFSBXak9dfvx+HI8+Kqkk0ceD9O9jEaYW+zxYJjMI2eS9IY/Hg8O1uQwKlt8XiWtcvAyJtH37NAqMZOIM1zHg2USB4O06o3+Z1PcfnLqOvsvGEmTTDbe7/cxPBKJhObBI6EKbAZIbRTO4pHHgzCaXBVJz6yqnl2Y8CRXdGc6ddbjocfsjvHzSmntGyd1kv7U7ZPNeM0k8bNI92nIpSRhZ1PMNhFbxZq4Sa6cuv3h6HDe4JGwafBIqIWlgivqgCf2HinPol3HmJweOZ9E/r8z/zAgyRjT55WPlnXrRExiWOZmu/otapKD8tdTt19sDj+DnE8SeDZF9sjOc3VK9CTDFoej0/cvq+varjkB1gIeCbUwP1K6VPVlHOcjtXGnhEeakvzD733v6Y9ff37zpp91TZtQ8UZlw3RfgSQmZbJRuNhJhA3nurT3NORiksCzqWmPvE6PxvNIgLah60NFzIyXQ/WfrMr3HQoD6/55iPmTn309BP7w5VefX73uk3qkxP/+jb8zznD3K983TQPatFUej8ybxLBX61WJ6Txy3mR1g4w8WxxwNkU+OofuNL0Dyf4Eipjkuw8fPr96/eKHf+/y3/BIADvo+lARZo+8TGR1k6mlTPfZaBwPu93v/cHXykh//8WzPq9HfvuzTsnw3/7mL0p7L+ORJqHN7pH9zZfOu7aWyARJxlsZNxKnISMfnYCzKbJHdofJ8XC5IStWkm/174R4JIAddH2oizmPNF9fdiWg7p+6/e7X/ssH/ZrjOXY2j/zuw5+JGXjx4hX4uv/iGR4JYAldH1aB6YKop0j61v3LzRmfX70Wh58+n0eefvSD7xcfbnnxavWFRwJYQteHVWC81uV336lX3b/d4fv5zRt57Mnkkaduv3vyEzkDL168wl+7MUsVBo+ELUPXh3VgWuKXyyPVmyI+fPmVPvb0OTzylkTMsPxsoGhJ+t7x85Z4ApHp+T62wVO0ieUBUbpW5PtsAs6mmG0i94l8R8f4nZD5SAA76PqwEuShz/px0lMc677gIp+//p0/+ue/Ox54vv3pXZ/cIydJPr96ff/Fs0mGf/fP9FYq8vxIiSJPRDd5pG3PSdEm9j+no39RiZMk7GyK2CbnBSveCHukAwAAByxJREFU656jJJG/E+KRAHbQ9WEtSPeTemqk8+8iilM34hiT1CMtklTzeza6qrg0TeS5t4CFtQk8UnYnEyEquXB0fM+mmG0iHR77LhslifB97Kd3eCSAJXR9WA/qU2M8nO2CQ90/HgxyYr5K5xgqcpI8v6892Zl5ymv4L47PaEqYZPhLKrde7APnfuzQSXxVcjZJwNkUt01Uk3TpKgmOziQGHgmwCF0f1sXkecUhP+xmV/cnz2meMt25tGHUsdA6Sd9PWsnFaR3GQpvPO9kmjVtbJtG2su850ZM4PI19ioNK2ibxPJvit4nnY8hTHB1hw8VA581skwC0BV0ftkhVdZ8kOiTR2e12gcslIyYptWuFSpJUVU8AMkPXhy1SVd0niQ5JdM5J8MgxlSSpqp4AZIauD1ukqrpPEh2S6AxJ8MiBSpJUVU8AMkPXhy1SVd0niQ5JdEiiU0mSquoJQGbo+rBFqqr7JNEhiQ5JdCpJUlU9AcgMXR+2SFV1nyQ6JNEhiU4lSaqqJwCZoevDFqmq7pNEhyQ6JNGpJElV9QQgM3R92CJV1X2S6JBEhyQ6lSSpqp4AZIauD1tkBwAQldJVDaAMdH3YIqVHHABojdJVDaAMdH0AAAAA8AGPBAAAAAAf8EgAAAAA8AGPBAAAAAAf8EgAAAAA8AGPBAAAAAAf8EgAAAAA8AGPBACA7fL2wcO3Dx6WTgGwVvBIAADYKGeJRCUBvMEjAYJgBAJYI2OD5CwG8AaPBPCHQQhgjWCQALHAIwH8YUoDYF1wzgLEBY8ECIVhCWAVcKoCRAePBIgAkxwAlcMZCpACPBIgGgxUABXCiQmQDjwSICZMTAJUBecjQFLwSID4YJMAxeEcBMgAHgmQCoYxgFJw9gHkAY8ESAgTkwCZ4YwDyAkeCZAcBjaAPHCuAWQGjwTIAROTAEnh/AIoAh4JkA+GOoAUcGYBlAKPBMgKE5MAEeFsAigLHglQAAY/gHA4jwCKg0cClIGJSQBvOH0AKgGPBCgJwyGAK5wyAPWARwIUBpUEsISTBaA28EiAKmCABJiHEwSgQvBIgIpgpATQ4VsWQLXgkQB1wZAJMIbTAaBm8EiAGvEeOz89e6yb6OLr3bNvguK+eBrnfZz55v7R8Cmefuz7j08ifaLV0HIL8J0KoH7wSIBK8RtEi3jk4C5vHz3/ZBXv8f3LkB32fd/3L5+/m3yKwhYlN8I1ZJQ8aus13QIYJMAqwCMBqibKaDoM8O9fxE135eoKC+9/nbaMEuNmLWUtSpU5TaYtG2cRrfVabQGmIQFWBB4JUDvhw2pyj7TiegX2yV3Md5sKUzGLevT806BT2qTsNdXTj/670VuvzRbAIAHWBR4JsA5CxtexR3569rjMyrnLdFqMK9p9P7KoyRuWXB1otqgIV7eF1mutBZiGBFgjeCTAavAeaG8e+cT1hpirrMwufBwWZV7fVv9XwvtMZklH10YXs4lrQM//SrQobXthVmx0jfjx/Uv9E1kwY1HD+y+tHzWgtl57LYBBAqwUPBJgZXjYpLaQztoPbno3N4+oOsd1Jd/oSvrde/MV2PcvLv9V+1cLu7OyqFGY0Wv8cdS9v33w+P2TyBYVNh2rtl5jLYBEAqwXPBJglTgNvZOZP0HyZog0HyndYSPa7dsZEdF2Z2tR4xWZ2iOK5mJEtCjDvSa3vasLH0e+pbVeSy2AQQKsGjwSYK3Yq6R6n42bSi6zfA1UmovSHxNz0yPTBVzpLhPRTc32c517u7zVaCru9ua3PxqnAPW7hewsavly82XL0aVneSavhRboR93YkBYAqgaPBFg3Niop3K8dVSUXPVJ8bKSQShORKB4pz7edd3G7cD9dMqhN2oValHBlfzzvOH6cuPr+hoduNtACALB68EiA1ePjkf1IJT1v/rgROB8545FmLC1KX/lnsKjpHqPfZSJZ1N17ZWPTEQmaj6y5BQBg9eCRAO1jfH6ksnLOF2uPlI0noUcOZqZfsb3sQriA63Tz+A2vq7pWyM9v31ILAECt4JEA7RPwHPJI99lIDpHTI4V7Si670C4oT1/L0qP/mosy4Xcm5Ld8ZAPbUgsAQK3gkQDt4++R0Z77s/T8SGV32a5r96IGPb23v6prZ1FhP2kj2vymWgAAKgWPBGif8vOR0s0iWTxSsZzH9y+Vq7pnxrL19KPT6kAri1JukXZGutVmWy0AAHWCRwK0T+rf17ZyjjUtj5OWDAZguOHahdytV18LAECV4JEA7VOFR942q+zKpnqz0XhmLor3xLlPOWHrraQFAKBC8EiA9knskfIF1tkta1JJ+WcDY12EtVoY4PZW0VtvNS0AANWBRwKAL+rCuHVetTRZ1Ha8hxYAAF/wSADwZeqRq71qqT/4Zp1C7A8tAACe4JEA4Ivf06oBAKAV8EgAAAAA8AGPBAAAAAAf8EgAAAAA8AGPBAAAAAAf/j+cYn27KqxpzwAAAABJRU5ErkJggg==" alt="" />
从a[0][0]开始输出,用一个flag来计当前所到达的层数(从外往内,最外面是第一层),再用一个temp来控制循环的次数(temp=m*n),每次输出一个数字,temp就减1,每次输出后判断temp是否等于0,如果等于就结束程序,否则继续循环,这样就可以有效控制循环的次数
我用了四个for分别输出这一个框的上、右、下、左边,如上图所示:
上边的起点为a[0][0],终点为a[0][6];
右边的起点为a[0][7],终点为a[5][7];
下边的起点为a[6][7],终点为a[6][0];
左边的起点为a[5][0],终点为a[1][0],这样我们就可以循环完一个框了,那么该如何控制起点和终点呢?
不妨稍加观察,每一个起点终点的i、j值都是有规律的可循的(即可以用式子表示出来),所以我才在这里加了个flag方便运算,通过观察:
上边的j起点表示为:flag-1,终点表示为:n-flag-1;
右边的i起点表示为:flag-1,终点表示为:m-flag;
下边的j起点表示为:flag-1,终点表示为:n-flag-1;
左边的i起点表示为:flag,终点表示为:m-flag-1;
这些规律如上图所示,通过这些规律就可以轻松地把代码写出来了!
代码如下:
- #include <stdio.h>
- int main()
- {
- int m,n;
- int i,j;
- int temp;
- int a[][];
- int flag=;//层数(最外层为0层)
- scanf("%d%d",&m,&n);
- temp=m*n;
- for(i=;i<m;i++)
- {
- for(j=;j<n;j++)
- {
- scanf("%d",&a[i][j]);
- }
- }
- /*================================*///从外往内一层一层输出
- while()
- {
- for(j=flag-;j<=n-flag-;j++)//上
- {
- printf("%d\n",a[flag-][j]);
- temp--;
- if(temp==) return ;
- }
- for(i=flag-;i<=m-flag;i++)//右
- {
- printf("%d\n",a[i][n-flag]);
- temp--;
- if(temp==) return ;
- }
- for(j=n-flag-;j>=flag-;j--)//下
- {
- printf("%d\n",a[m-flag][j]);
- temp--;
- if(temp==) return ;
- }
- for(i=m-flag-;i>=flag;i--)//左
- {
- printf("%d\n",a[i][flag-]);
- temp--;
- if(temp==) return ;
- }
- flag++;
- }
- }
Openjudge-NOI题库-二维数组回形遍历的更多相关文章
- 元素均匀排列自动换行&二维数组前端遍历
1.元素均匀排列并自动换行 display:flex; flex-wrap:wrap; 2.getFiled();取一行,取多行的话用getFiled(‘id’,true); 3.二维数组前端遍历: ...
- C++ 性能小测 1 二维数组的遍历效率
C++ 性能小测 1 二维数组的遍历效率 遍历二维数组时,常规思路是使用一个嵌套循环.一方面,由于 CPU 使用了分支预测技术,因此通常将循环次数最多循环的放在最内层.另一方面,由于二维数组是按行存储 ...
- 剑指Offer编程题1——二维数组中的查找
剑指Offer编程题1---------------二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完 ...
- 剑指Offer_编程题之二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.
- 《剑指offer》第四题(二维数组中的查找)
// 二维数组中的查找 // 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按 // 照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 // 整数,判断数组 ...
- [剑指offer]第1题,二维数组中的查找
①题目 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- PHP针对二维数组无限遍历变形研究
一.需要变形的二维数组 $arr = Array( Array ( 'material_id' => 1, 'material_name' => '铜板纸', 'parent_id' =& ...
- 二维数组初始化 遍历 动态赋值 内存图 Day08
package com.sxt.arraytest3; /* * 二维数组 */ public class TestArray { public static void main(String[] a ...
- vector 定义的二维数组的遍历
之前我们分享了STL的一些容器,再介绍vector中只介绍了二维的vector的定义并没有说二维的vector怎么遍历,那么我们今天就来看下二维的vector怎么遍历 看下面的代码吧. #includ ...
随机推荐
- HTML初学者的三十条最佳
颜海镜 专注web前端,分享html,css,javascript等相关知识…… 给HTML初学者的三十条最佳实践 Nettuts +运营最困难的方面是为很多技能水平不同的用户提供服务.如果我们发布太 ...
- Asp.Net中使用Couchbase——Memcached缓存使用篇
Asp.Net中使用Couchbase——Memcached缓存使用篇 前言 在上一篇Asp.Net中使用Couchbase——Memcached缓存入门篇http://www.cnblogs.com ...
- C#实战Microsoft Messaging Queue(MSMQ)
C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货) 前言 在使用MSMQ之前,我们需要自行安装消息队列组件!(具体安装方法大家自己搜一下吧) 采用MSMQ带来的好处 ...
- GC算法精解(五分钟让你彻底明白标记/清除算法)
GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底 ...
- NHIBERNATE的简单框架的设计
NHIBERNATE的简单框架的设计 上次的 NHibernate的Session管理策略和NHibernateHelper 发布并提供下载,给NHibernate刚入门的同学们带来很多便利. 最近有 ...
- 《Troubleshooting SQL Server》读书笔记-CPU使用率过高(下)
<Troubleshooting SQL Server>读书笔记-CPU使用率过高(下) 第三章 High CPU Utilization. CPU使用率过高的常见原因 查询优化器会尽量从 ...
- 学会Func
学会Func 前言 首先你要会最基本的委托的使用,如果不会,看起来可能会有难度.. 不过第一个例子将帮你复习一下委托delegate 接下来通过几个例子就会学会怎么灵活使用Func了 委托回顾(d ...
- 大数据应用日志采集之Scribe演示实例完全解析
大数据应用日志采集之Scribe演示实例完全解析 引子: Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系 ...
- 腾讯地图api接收坐标提交坐标
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 快速构建C++项目工具Scons,结合Editplus搭建开发环境
Windows下C++开发工具用的最多的非VS莫属了(当然也有很多比如eclipse,Qt等等),便捷的项目构建向导,再加上强大的VC助手,使得开发和调试得心应手.并不是说vc就没有缺点,相反缺点也不 ...