﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-ArcTan-文章分类-Topcoder</title><link>http://www.cppblog.com/ArcTan/category/19467.html</link><description>dfs</description><language>zh-cn</language><lastBuildDate>Sun, 22 Jul 2012 06:56:09 GMT</lastBuildDate><pubDate>Sun, 22 Jul 2012 06:56:09 GMT</pubDate><ttl>60</ttl><item><title>SRM 500 DIV2 500PT（模拟）</title><link>http://www.cppblog.com/ArcTan/articles/184581.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 22 Jul 2012 02:10:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/184581.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/184581.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/184581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/184581.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/184581.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <em>NOTE: This problem statement contains images that may not display            properly if viewed outside of the applet.</em><br /><br />We had a            rectangular grid that consisted of W x H square cells. We placed a            robot on one of the cells. The robot then followed the rules given            below.            <ul><li>               Initially, the robot is facing east.             </li><li>               The robot moves in steps. In each step it moves to the adjacent                cell in the direction it currently faces.             </li><li>               The robot may not leave the grid.             </li><li>               The robot may not visit the same cell twice. (This also means                that it may not reenter the starting cell.)             </li><li>               If a step forward does not cause the robot to break the above                rules, the robot takes the step.             </li><li>               Otherwise, the robot rotates 90 degrees to the left                (counter-clockwise) and checks whether a step forward still                breaks the above rules. If not, the robot takes the step and                continues executing this program (still rotated in the new                direction).             </li><li>               If the rotation left did not help, the robot terminates the                execution of this program.             </li><li>               We can also terminate the execution of the program manually, at                any moment.             </li></ul>           For example, the following seven images show a series of moves made            by the robot in a 12 x 11 board:<br /><br /><img src="http://www.topcoder.com/contest/problem/RotatingBot/bot.jpg"  alt="" /><br /><br />We            forgot the dimensions of the grid and the original (x,y) coordinates            of the cell on which the robot was originally placed, but we do            remember its movement. You are given a vector &lt;int&gt; <strong>moves</strong>.            This sequence of positive integers shall be interpreted as follows:            The robot performed <strong>moves</strong>[0] steps eastwards, turned left,            performed <strong>moves</strong>[1] steps northwards, turned left, and so on.            After performing the last sequence of steps, the robot stopped.            (Either it detected that it should terminate, or we stopped it            manually.) We are not sure if the sequence of moves is valid. If the            sequence of moves is impossible, return -1. Else, return the minimum            area of a grid in which the sequence of moves is possible. (I.e.,            the return value is the smallest possible value of the product of W            and H.).         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 RotatingBot               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 minArea               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 vector &lt;int&gt;               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 int minArea(vector &lt;int&gt; moves)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>moves</strong> will contain between 1 and 50 elements, inclusive.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           Each element of <strong>moves</strong> will be between 1 and 50, inclusive.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{15}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 16</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The smallest valid board is a 16x1 board, with the robot                        starting on the west end of the board.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{3,10}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 44</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The smallest solution is to place the robot into the                        southwest corner of a 4 x 11 board.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{1,1,1,1}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: -1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       This sequence of moves is not possible because the robot                        would return to its initial location which is forbidden.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{9,5,11,10,11,4,10}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 132</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       These moves match the image from the problem statement.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{12,1,27,14,27,12,26,11,25,10,24,9,23,8,22,7,21,6,20,5,19,4,18,3,17,2,16,1,15}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 420</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           5)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{8,6,6,1}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: -1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           6)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{8,6,6}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 63</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           7)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{5,4,5,3,3}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 30</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br /><br />模拟题目，直接按照给定序列遍历，如果遇到不合法的情况return -1。设定四个方向，mw,me,mn,ms，东北西南，初始为上下界。然后依次找到范围。<br />初始点(100,100)。<br />最后的面积为(me-mw+1)*(ms-mn+1)<br /><br />没有考虑完全啊，思维还是不严谨不完整，就WA了一组数据，昨晚做就悲剧了！！！！<br />我是弱菜，继续努力！<br /><br />不错的模拟题目，需要考虑的东西很多！<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdio</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdlib</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstring</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cmath</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ctime</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cassert</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">iostream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">sstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">fstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">map</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">set</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">queue</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;min(x,y)&nbsp;(x&lt;y?x:y)</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;max(x,y)&nbsp;(x&gt;y?x:y)</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;swap(t,x,y)&nbsp;(t=x,x=y,y=t)</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;clr(list)&nbsp;memset(list,0,sizeof(list))</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;maps[</span><span style="color: #000000; ">205</span><span style="color: #000000; ">][</span><span style="color: #000000; ">205</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;go[</span><span style="color: #000000; ">4</span><span style="color: #000000; ">][</span><span style="color: #000000; ">2</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{{</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">},{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">},{</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">},{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">}};<br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;RotatingBot{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;minArea(vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;moves){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">moves.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;me</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">,mw</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,mn</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,ms</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;dir;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x,y,xx,yy;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr(maps);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps[</span><span style="color: #000000; ">100</span><span style="color: #000000; ">][</span><span style="color: #000000; ">100</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">,y</span><span style="color: #000000; ">=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">,dir</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n&nbsp;;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">moves[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">tmp;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xx</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">+</span><span style="color: #000000; ">go[dir][</span><span style="color: #000000; ">0</span><span style="color: #000000; ">];yy</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y</span><span style="color: #000000; ">+</span><span style="color: #000000; ">go[dir][</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(maps[xx][yy]&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;(xx</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">mw&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;xx</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">me&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;yy</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">mn&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;yy</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">ms))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps[xx][yy]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">xx;y</span><span style="color: #000000; ">=</span><span style="color: #000000; ">yy;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xx</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">+</span><span style="color: #000000; ">go[dir][</span><span style="color: #000000; ">0</span><span style="color: #000000; ">];yy</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y</span><span style="color: #000000; ">+</span><span style="color: #000000; ">go[dir][</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">maps[xx][yy])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dir</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(me</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;me</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">me&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dir</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(mn</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mn</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(y</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">mn&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dir</span><span style="color: #000000; ">==</span><span style="color: #000000; ">2</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这里WA了testing 5 &amp; 6<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(mw</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;x</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mw</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">mw&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dir</span><span style="color: #000000; ">==</span><span style="color: #000000; ">3</span><span style="color: #000000; "></span><span style="color: #000000; ">) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; //最后栽在这里了</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(ms</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;y</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">)&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((y</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ms&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;y</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">100</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(dir</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">4</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;return&nbsp;mw;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(mw</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mw</span><span style="color: #000000; ">=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(mn</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mn</span><span style="color: #000000; ">=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(ms</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms</span><span style="color: #000000; ">=</span><span style="color: #000000; ">100</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(me</span><span style="color: #000000; ">-</span><span style="color: #000000; ">mw</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">(ms</span><span style="color: #000000; ">-</span><span style="color: #000000; ">mn</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/184581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-22 10:10 <a href="http://www.cppblog.com/ArcTan/articles/184581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM550 DIV2 250PT（字符串水题）</title><link>http://www.cppblog.com/ArcTan/articles/184580.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 22 Jul 2012 02:02:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/184580.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/184580.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/184580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/184580.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/184580.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           We have a string <strong>originalWord</strong>. Each character of <strong>originalWord</strong>            is either 'a' or 'b'. Timmy claims that he can convert it to <strong>finalWord</strong>            using <em>exactly</em> <strong>k</strong> moves. In each move, he can either            change a single 'a' to a 'b', or change a single 'b' to an 'a'.<br /><br />You            are given the strings <strong>originalWord</strong> and <strong>finalWord</strong>, and            the int <strong>k</strong>. Determine whether Timmy may be telling the truth.            If there is a possible sequence of exactly <strong>k</strong> moves that will            turn <strong>originalWord</strong> into <strong>finalWord</strong>, return "POSSIBLE"            (quotes for clarity). Otherwise, return "IMPOSSIBLE".         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 EasyConversionMachine               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 isItPossible               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 string, string, int               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 string               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 string isItPossible(string originalWord, string finalWord, int                  k)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Notes           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           Timmy may change the same letter multiple times. Each time counts as            a different move.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>originalWord</strong> will contain between 1 and 50 characters,            inclusive.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>finalWord</strong> and <strong>originalWord</strong> will contain the same            number of characters.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           Each character in <strong>originalWord</strong> and <strong>finalWord</strong> will be            'a' or 'b'.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>k</strong> will be between 1 and 100, inclusive.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"aababba"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>"bbbbbbb"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>2</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: "IMPOSSIBLE"</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       It is not possible to reach <strong>finalWord</strong> in fewer                        than 4 moves.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"aabb"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>"aabb"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>1</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: "IMPOSSIBLE"</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The number of moves must be exactly <strong>k</strong>=1.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"aaaaabaa"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>"bbbbbabb"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>8</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: "POSSIBLE"</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       Use each move to change each of the letters once.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"aaa"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>"bab"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>4</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: "POSSIBLE"</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The following sequence of 4 moves does the job:<br />aaa                        -&gt; baa -&gt; bab -&gt; aab -&gt; bab                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"aababbabaa"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>"abbbbaabab"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>9</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: "IMPOSSIBLE"</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved. <br /></p><p><br /></p><p>字符串水题！</p><p>249.23PT！！！</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdio</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdlib</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstring</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cmath</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ctime</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cassert</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">iostream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">sstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">fstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">map</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">set</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">queue</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;min(x,y)&nbsp;(x&lt;y?x:y)</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;max(x,y)&nbsp;(x&gt;y?x:y)</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;swap(t,x,y)&nbsp;(t=x,x=y,y=t)</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;clr(list)&nbsp;memset(list,0,sizeof(list))</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /><br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;EasyConversionMachine{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;isItPossible(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;originalWord,&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;finalWord,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">originalWord.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;tot</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(originalWord[i]</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">finalWord[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tot</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(tot</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">k&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;(k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">tot)</span><span style="color: #000000; ">%</span><span style="color: #000000; ">2</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">) //傻叉，这里刚刚开始搞反了，testing WA了一次<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">POSSIBLE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">IMPOSSIBLE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div>     </div><img src ="http://www.cppblog.com/ArcTan/aggbug/184580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-22 10:02 <a href="http://www.cppblog.com/ArcTan/articles/184580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM 150 DIV 2 1000pt（模拟）</title><link>http://www.cppblog.com/ArcTan/articles/183611.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 15 Jul 2012 14:01:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/183611.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/183611.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/183611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/183611.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/183611.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <p>             You are given a rectangular map in which each space is marked with              one of three characters: '.' (open), 'B' (a brick), or '#' (an              indestructible block). Walls made of indestructible blocks              surround the field on all sides, but are not shown on the map. A              ball is bouncing around this map, destroying bricks, and your task              is determine how long it takes the ball to destroy all the bricks.           </p>           <p>             The top left space of the map is always open, and this is where              the ball begins. More specifically, the ball begins at time 0 in              the middle of the top edge of this space (see the diagram in              Example 0). The ball is traveling diagonally down and to the right              at a speed of half a meter per second vertically, and half a meter              per second horizontally. Each space is 1 meter square, so the ball              crosses half a space vertically and half a space horizontally each              second.           </p>           <p>             Whenever the ball strikes the edge of an obstacle--either a brick              or an indestructible block--it bounces off at an angle              perpendicular to its incoming path. The ball will never hit two              obstacles simultaneously. Whenever the ball bounces off a brick,              the brick is destroyed and removed from the map.           </p>           <p>             Your method should return the time at which the last brick is              destroyed. If one or more bricks will never be destroyed, return              -1.           </p>         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 BrickByBrick               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 timeToClear               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 vector &lt;string&gt;               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 int timeToClear(vector &lt;string&gt; map)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>map</strong> contains between 1 and 15 elements, inclusive.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           All elements of <strong>map</strong> contain the same number of characters            (between 1 and 15, inclusive).         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           All elements of <strong>map</strong> contain only the characters '.', 'B', and            '#'.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           The top left corner of <strong>map</strong> (that is, the first character of            the first element) is '.'.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>map</strong> contains at least one 'B'.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ ".B",   "BB" }</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 6</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The following diagram illustrates the path of the ball.                        <pre>     __0________     | / \ |     |     |/   \|     |     3  .  1  B  |     |\   /|\    |     | \ / | \   |     |--2--|--6--|     |     |     |     |     |     |     |  B  |  B  |     |     |     |     |_____|_____|</pre>                       The ball begins at point 0, traveling down and to the                        right. It bounces off the first brick at time 1, and off                        the second brick at time 2. At time 3, it bounces off                        the left wall, and at time 4 it bounces off the upper                        wall at the same place it started. At time 6, the ball                        destroys the third and final brick, so the method                        returns 6.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ ".BB",   "BBB",   "BBB" }</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: -1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The ball will never hit the brick in the bottom right                        corner.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ "......B",   "###.###",   "B.....B" }</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 35</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ "..BBB...",   ".#BB..#.",   "B.#B.B..",   "B.B.....",   "##.B.B#.",   "#BB.#.B.",   "B..B.BB.",   "#..BB..B",   ".B....#." }</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: -1</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ ".BB..BBB.B...",   "B.B...B..BB..",   "#B...B#B.....",   "B#B.B##...##B",   "BB.B#.B##B.B#",   "B.B#.BBB.BB#B",   "B#BBB##.#B#B.",   "B#BB.BBB#BB.#" }</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 3912</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           5)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ ".BBBBBBBBBBBBBB",   "##############B",   "BBBBBBBBBBBBBBB",   "B##############",   "BBBBBBBBBBBBBBB",   "##############B",   "BBBBBBBBBBBBBBB",   "B##############",   "BBBBBBBBBBBBBBB",   "##############B",   "BBBBBBBBBBBBBBB",   "B##############",   "BBBBBBBBBBBBBBB",   "##############B",   "BBBBBBBBBBBBBBB" }</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 31753</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br /><br /><br />题意：就像是那个啥游戏，看了那个图就挺好理解的了。<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意方向变换。<br />&nbsp;<br />写了好久好久啊，<br />404PT：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">fstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /><br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;BrickByBrick<br />{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;timeToClear(vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;map)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;time</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;bricks</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;impactTime</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;x,y,dirX,dirY,newX,newY;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">map.size();&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[i].insert(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">),</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[i].push_back(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;s;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">map[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">].length();&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.push_back(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.insert(map.begin(),s);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.push_back(s);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">map.size();&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bricks</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">count(map[i].begin(),map[i].end(),</span><span style="color: #000000; ">'</span><span style="color: #000000; ">B</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dirY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(bricks&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;impactTime&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;impactTime</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">dirX;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">dirY;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">==</span><span style="color: #000000; ">x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">==</span><span style="color: #000000; ">y)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">==</span><span style="color: #000000; ">x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">==</span><span style="color: #000000; ">y)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">==</span><span style="color: #000000; ">x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">==</span><span style="color: #000000; ">y)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">==</span><span style="color: #000000; ">x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">==</span><span style="color: #000000; ">y)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(map[newY][newX]</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">.</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)x</span><span style="color: #000000; ">==</span><span style="color: #000000; ">x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)y</span><span style="color: #000000; ">==</span><span style="color: #000000; ">y)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(dirX</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;dirY</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirX</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0.5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(map[newY][newX]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">'</span><span style="color: #000000; ">B</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[newY][newX]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">.</span><span style="color: #000000; ">'</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">impactTime;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;impactTime</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bricks</span><span style="color: #000000; ">--</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(impactTime</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;time;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><br />&nbsp;<img src ="http://www.cppblog.com/ArcTan/aggbug/183611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-15 22:01 <a href="http://www.cppblog.com/ArcTan/articles/183611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM 150 DIV 2 500pt（thinking &amp;&amp; 数论）</title><link>http://www.cppblog.com/ArcTan/articles/183609.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 15 Jul 2012 13:54:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/183609.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/183609.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/183609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/183609.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/183609.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <p>             The digits 3 and 9 share an interesting property. If you take any              multiple of 3 and sum its digits, you get another multiple of 3.              For example, 118*3 = 354 and 3+5+4 = 12, which is a multiple of 3.              Similarly, if you take any multiple of 9 and sum its digits, you              get another multiple of 9. For example, 75*9 = 675 and 6+7+5 = 18,              which is a multiple of 9. Call any digit for which this property              holds <em>interesting</em>, except for 0 and 1, for which the              property holds trivially.           </p>           <p>             A digit that is interesting in one base is not necessarily              interesting in another base. For example, 3 is interesting in base              10 but uninteresting in base 5. Given an int <strong>base</strong>, your              task is to return all the interesting digits for that base in              increasing order. To determine whether a particular digit is              interesting or not, you need not consider <em>all</em> multiples of              the digit. You can be certain that, if the property holds for all              multiples of the digit with fewer than four digits, then it also              holds for multiples with more digits. For example, in base 10, you              would not need to consider any multiples greater than 999.           </p>         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 InterestingDigits               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 digits               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 vector &lt;int&gt;               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 vector &lt;int&gt; digits(int base)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Notes           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           When <strong>base</strong> is greater than 10, digits may have a numeric value            greater than 9. Because integers are displayed in base 10 by            default, do not be alarmed when such digits appear on your screen as            more than one decimal digit. For example, one of the interesting            digits in base 16 is 15.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>base</strong> is between 3 and 30, inclusive.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>10</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: { 3,  9 }</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       All other candidate digits fail for <strong>base</strong>=10. For                        example, 2 and 5 both fail on 100, for which 1+0+0=1.                        Similarly, 4 and 8 both fail on 216, for which 2+1+6=9,                        and 6 and 7 both fail for 126, for which 1+2+6=9.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>3</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: { 2 }</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>9</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: { 2,  4,  8 }</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>26</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: { 5,  25 }</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>30</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: { 29 }</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br />题意给定base进制数里，找出里面所有的特别的数x,对于x的倍数kx，它的每一位的和还是x的倍数。<br />比如base=10，则x=3和9。<br /><br />这个应该是小学时候就记得的结论了，专门算3和9的，哈哈。<br /><br />结论：base %x==1是充要条件。<br />证明：<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a=a1*base^0+a2*base^1+a3*base^2,对于任何a都可以这样分解<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 因为 base % x=1，则base^k %x==1。则上式化简为<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; a==a1+a2+a3+.. (mod x)<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 反之，也可得base %x==1<br /><br />440PT啊，小小犹豫了下哦。直接枚举了x验证啊。<br /><br />其实就是求base-1的因子，如果base很大地话，是不能这样去枚举的。因子分解哦，又是经典问题啊。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /><br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;InterestingDigits{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;digits(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a[</span><span style="color: #000000; ">31</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[n</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;ans(n);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ans;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><br /><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/183609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-15 21:54 <a href="http://www.cppblog.com/ArcTan/articles/183609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM 150 DIV 2 250pt（队列）</title><link>http://www.cppblog.com/ArcTan/articles/183599.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 15 Jul 2012 13:37:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/183599.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/183599.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/183599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/183599.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/183599.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <p>             When a widget breaks, it is sent to the widget repair shop, which              is capable of repairing at most <strong>numPerDay</strong> widgets per day.              Given a record of the number of widgets that arrive at the shop              each morning, your task is to determine how many days the shop              must operate to repair all the widgets, not counting any days the              shop spends entirely idle.           </p>           <p>             For example, suppose the shop is capable of repairing at most 8              widgets per day, and over a stretch of 5 days, it receives 10, 0,              0, 4, and 20 widgets, respectively. The shop would operate on days              1 and 2, sit idle on day 3, and operate again on days 4 through 7.              In total, the shop would operate for 6 days to repair all the              widgets.           </p>           <p>             Create a class WidgetRepairs containing a method days that takes a              sequence of arrival counts <strong>arrivals</strong> (of type vector &lt;int&gt;)              and an int <strong>numPerDay</strong>, and calculates the number of days of              operation.           </p>         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 WidgetRepairs               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 days               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 vector &lt;int&gt;, int               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 int days(vector &lt;int&gt; arrivals, int numPerDay)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>arrivals</strong> contains between 1 and 20 elements, inclusive.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           Each element of <strong>arrivals</strong> is between 0 and 100, inclusive.         </td>       </tr>       <tr>         <td valign="top" align="center">           -         </td>         <td>           <strong>numPerDay</strong> is between 1 and 50, inclusive.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ 10, 0, 0, 4, 20 }</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>8</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 6</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The example above.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ 0, 0, 0 }</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>10</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 0</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ 100, 100 }</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>10</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 20</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ 27, 0, 0, 0, 0, 9 }</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>9</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 4</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td nowrap="true" align="center">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{ 6, 5, 4, 3, 2, 1, 0, 0, 1, 2, 3, 4, 5, 6 }</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>3</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 15</pre>               </td>             </tr>             <tr>               <td>                                <br /></td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br /><br />直接遍历就行，每天完成不了的留到第二天做。最后没有完成的延迟到后面做。<br />求的的做的天数是多少，没有做的那天不用算。<br /><br />228PT，速度还是慢了点。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /><br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;WidgetRepairs{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;days(vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;arrivals,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;numPerDay){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">arrivals.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;now</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;tot</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;now)&nbsp; //这里可以优化一下，如果i==n就不用循环了，剩下的需要完成的天数为(now-1)/numPerDay+1。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">arrivals[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(now</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000;">)</span>&nbsp;&nbsp; //第一次这里理解错了，以后要把细节搞清楚啊。。。<br /><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tot</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000; ">=</span><span style="color: #000000; ">now</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">numPerDay</span><span style="color: #000000; ">?</span><span style="color: #000000; ">now</span><span style="color: #000000; ">-</span><span style="color: #000000; ">numPerDay:</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;tot;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/183599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-15 21:37 <a href="http://www.cppblog.com/ArcTan/articles/183599.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM549 DIVⅡ 1000pt（AOV网拓扑排序）</title><link>http://www.cppblog.com/ArcTan/articles/182546.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Tue, 10 Jul 2012 01:59:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/182546.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/182546.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/182546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/182546.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/182546.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           The Order of the Hats is a magical organization. One of their duties            is to teach students how to cast spells. There are N spells numbered            from 0 to N-1. As an aid for the students, the teachers have            prepared a spell chart. The chart lists suggestions on the order in            which to study the spells. (This is explained in more detail below.)<br /><br />Recently,            some changelings broke into the Order's spell archive and messed up            the spell chart. You are given a String[] <strong>spellChart</strong>            containing the new, messed-up state of the spell chart. Each            character of each element of <strong>spellChart</strong> is either 'Y' or 'N'.            The students will come to study soon. They will interpret the chart            in the following way: If <strong>spellChart</strong>[i][j] is 'Y' then spell i            must be learned before spell j.<br /><br />As the chart is now messed            up, it may be impossible to learn all the spells in the chart            because of cycles in the requirements. Your task is to repair the            given chart. Determine the minimum number of changes needed to            remove all the cycles in the requirements. In a single change, you            may either change some character <strong>spellChart</strong>[i][j] from 'Y' to            'N', or change some character from 'N' to 'Y'.<br /><br />         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 OrderOfTheHats               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 minChanged               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 String[]               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 int minChanged(String[] spellChart)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>spellChart</strong> will contain between 1 and 20 elements, inclusive.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           Each element of <strong>spellChart</strong> will contain N characters, where N            is the number of elements in <strong>spellChart</strong>.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           Each character in each element of <strong>spellChart</strong> will be either            'Y' or 'N'.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"Y"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       This spell chart contains a spell that should be learned                        before itself. The students would never be able to learn                        such a spell. We can remove this cyclic dependency by                        changing the 'Y' to 'N'.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"NYN",  "NNY",  "NNN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 0</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       This spell chart is already OK.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"NYN",  "NNY",  "YNN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       Changing any single 'Y' to a 'N' will fix this spell                        chart.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"NYYYYYY",  "YNYYYYY",  "YYNYYYY",  "YYYNYYY",  "YYYYNYY",  "YYYYYNY",  "YYYYYYN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 21</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"NNNY",  "YNYN",  "YNNN",  "YYYN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           5)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"YYYYYNNYYYNYNNNNYNNY",  "NYNNNYYNNYNYYYNYYYYY",  "NNYNNNYYNNNNNNYYYYNY",  "YYNYNYYNNYYYNYNNNYYY",  "NYYNNYNYNYNNNNYYYNYN",  "NNNNNYYNYNNYYYYNYYYN",  "YNYNYYNNNYNNNNNYNNYY",  "NYYYYNYNYNNYNNYNNNNY",  "YYYYNYYNNYYYNNYNNYNY",  "YYYYYYNYNYNYNNNNNNYN",  "NNYYYYYNNNYNNNYNNNNY",  "YYNNNYNYYNYYNYYNYNYN",  "NNYNYYNYYNYYNYNYNYYN",  "YNYNYYNYNNNYNYNYYNYY",  "NNYNNNYYYYYYYYYYYNYY",  "YYYYYNYYNYYYYYNNYNNN",  "NYYYYYYYYNNNNNYYNNYN",  "YNNYNNNYYNYYYNYNYYYY",  "YYNNYNYYYNYYNNNYYNNY",  "NNYNYNYYYNYYNYNNYNNN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 79</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           6)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"YYNYNN",  "YNYNNY",  "YYYYNN",  "NNNYNN",  "NNNYNN",  "YNYNYN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 5</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           7)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{"NNNNNNNNNN",  "NNNNNNNNNN",  "NNNYNNYNNN",  "NNNYNNYNNN",  "NNNYNNYNNN",  "NNNNNNNNNN",  "NNYYYYYYNN",  "NNYNNNNYNN",  "NNNYYYYNNN",  "NNNNNNNNNN"}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 6</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br /><br /><br /><span style="color: red;">题意：给定一张N*N的map，N个顶点的图，map[i][j]=='Y'，&lt;i,j&gt;，否则&lt;j,i&gt;。求最小的转换Y或者N，使该图没有环！</span><br /><br /><span style="color: red;">思路：怎么做呢？thinking</span><br /><br /><br /><br /><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/182546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-10 09:59 <a href="http://www.cppblog.com/ArcTan/articles/182546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM549 DIVⅡ 500pt(最大匹配)</title><link>http://www.cppblog.com/ArcTan/articles/182540.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Tue, 10 Jul 2012 01:14:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/182540.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/182540.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/182540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/182540.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/182540.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           The Order of All Things Pointy and Magical has commissioned the            creation of some new wizard hats. A wizard hat is created by taking            two cones: a decorative top cone, and a warm and fluffy bottom cone.            To assemble the hat, both cones are first placed onto a table, so            that their bases are horizontal and their apexes point upwards. The            top cone is then lifted and placed onto the bottom cone. The base of            the top cone has to remain horizontal, and the apex of the top cone            must be strictly above the apex of the bottom cone.<br /><br />Not every            pair of cones can be used to create a wizard hat. A wizard hat is            only produced if the following two criteria are both met:            <ul><li>               The apex of the top cone must be strictly above the apex of the                bottom cone. I.e., when the top cone is placed on top of the                bottom cone and released, their apexes must not touch.             </li><li>               Some part of the bottom cone must remain visible to form the                brim of the hat. (Otherwise, the hat would look like a simple                cone, not like a wizard hat!)             </li></ul>           You have several top cones and several bottom cones of various            sizes. Each cone can be described by its height (the distance            between the apex and the base) and by the radius of its base. The            top cones you have are described by <strong>topHeight</strong> and <strong>topRadius</strong>:            for each valid i, you have one top cone with height <strong>topHeight</strong>[i]            and radius <strong>topRadius</strong>[i]. The bottom cones you have are            described by <strong>bottomHeight</strong> and <strong>bottomRadius</strong> in the same            way.<br /><br />Your task is to determine the maximum number of wizard            hats you can make using each of the available top and bottom cones            at most once.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 PointyWizardHats               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 getNumHats               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 vector &lt;int&gt;, vector &lt;int&gt;, vector &lt;int&gt;, vector &lt;int&gt;               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 int getNumHats(vector &lt;int&gt; topHeight, vector &lt;int&gt; topRadius,                  vector &lt;int&gt; bottomHeight, vector &lt;int&gt; bottomRadius)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>topHeight</strong> and <strong>topRadius</strong> will contain the same number            of elements.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>bottomHeight</strong> and <strong>bottomRadius</strong> will contain the same            number of elements.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>topHeight</strong> will contain between 1 and 50 elements, inclusive.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>topRadius</strong> will contain between 1 and 50 elements, inclusive.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>bottomHeight</strong> will contain between 1 and 50 elements,            inclusive.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>bottomRadius</strong> will contain between 1 and 50 elements,            inclusive.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           Each element of <strong>topHeight</strong>, <strong>topRadius</strong>, <strong>bottomHeight</strong>,            and <strong>bottomRadius</strong> will be between 1 and 10,000, inclusive.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{30}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{30}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The top and bottom cone can be used together to make a                        wizard hat.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{4,4}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{4,3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{5,12}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{5,4}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The only way to produce a wizard hat is to use the top                        cone 1 (height 4, radius 3) and the bottom cone 0                        (height 5, radius 5).                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{1,1}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{2,4}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{10,10}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{2,5}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{2,9}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{3,6}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 2</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{3,4,5}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{5,4,3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{3,4,5}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{3,8,5}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 2</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           5)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{1,2,3,4,5}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{2,3,4,5,6}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{2,3,4,5,6}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{1,2,3,4,5}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 0</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           6)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{123,214,232,323,342,343}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{123,123,232,123,323,434}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{545,322,123,545,777,999}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{323,443,123,656,767,888}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 5</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           7)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>{999,999,999,10000,10000,10000}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{10000,10000,10000,1,2,3}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{2324,2323,234,5454,323,232}</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>{1,2,3222,434,5454,23}</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 3</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <hr />           <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br /><br /><br /><br />题意：一个hat由上面top cone和下面的bottom cone组成。给定上面cone的高和底半径，topHeigh[],topRadius[]下面cone的bottomHeight[],bottomRadius[]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上下两个cone组成hat需要满足条件：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 1：The apex of the top cone must be strictly above the apex of the                 bottom cone. I.e., when the top cone is placed on top of the                 bottom cone and released, their apexes must not touch.<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 2：Some part of the bottom cone must remain visible to form the                 brim of the hat. (Otherwise, the hat would look like a simple                 cone, not like a wizard hat!)             <br /><br /><br /><span style="color: red;">思路：求二分图的最大匹配，模版题。</span><br /><span style="color: red;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; topcone 和bottomcone满足的条件是：topR&lt;bottomR &amp;&amp; topR*bottomH&lt;topH*bottomR</span><br /><br />错误提交了一次，尼玛！！！犹豫不决不敢coding不行呀！！<br /><br />175.22pt<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;map[</span><span style="color: #000000; ">55</span><span style="color: #000000; ">][</span><span style="color: #000000; ">55</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;result[</span><span style="color: #000000; ">55</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;state[</span><span style="color: #000000; ">55</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,m;<br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;PointyWizardHats{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;find(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">m&nbsp;;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(map[x][i]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">!</span><span style="color: #000000; ">state[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(result[i]</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;find(result[i]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;can(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x1,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;y1,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x2,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;y2) //这个条件我犹豫了半天，thinking不够啊！<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(y2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">x1</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">y1</span><span style="color: #000000; ">*</span><span style="color: #000000; ">x2&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;y2</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">y1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getNumHats(vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;topHeight,&nbsp;vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;topRadius,&nbsp;vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;bottomHeight,&nbsp;vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;bottomRadius){<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ans;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">topHeight.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #000000; ">=</span><span style="color: #000000; ">bottomHeight.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(map,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(map));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">m;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result[j]</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp; //这里之前全部设置的0啊啊啊！！！<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">m;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(can(topHeight[i],topRadius[i],bottomHeight[j],bottomRadius[j]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[i][j]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(state,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(state));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(find(i))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ans;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><br /><div>        <table>       <tbody><tr>         <td>                    <br /></td>       </tr>     </tbody></table>     </div><img src ="http://www.cppblog.com/ArcTan/aggbug/182540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-10 09:14 <a href="http://www.cppblog.com/ArcTan/articles/182540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM549 DIVⅡ 250pt (概率想法题)</title><link>http://www.cppblog.com/ArcTan/articles/182532.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Tue, 10 Jul 2012 01:03:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/182532.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/182532.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/182532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/182532.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/182532.html</trackback:ping><description><![CDATA[<div>                        <table>       <tbody><tr>         <td colspan="2">           <h3>             Problem Statement           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           A magician has invited you to play a game. For this game, the            magician uses a special table. On the table there are three spots in            a row. The spots are labeled 0, 1, and 2, in order. He places three            hats onto the table, so that each hat covers one of the spots. He            then takes a ball and places it under one of the hats. The hats are            not transparent, so you cannot see the ball while it is under a hat.            Next, the magician shuffles the hats by repeatedly swapping two <em>adjacent</em>            hats. Each swap is done by sliding the hats along the table, never            showing you the ball. Once the magician finishes swapping the hats,            you have to guess the spot where the ball is.<br /><br />You are given a            string <strong>hats</strong> which describes the contents of the hats in the            beginning of the game. The i-th character of <strong>hats</strong> is 'o' if            the ball was initially on the spot i. Otherwise, the i-th character            of <strong>hats</strong> is '.' (a period).<br /><br />You are also given a int <strong>numSwaps</strong>.            Assume that the magician swapped the hat that contained the ball            exactly <strong>numSwaps</strong> times. Please remember that in our version            of the game the magician always swaps two adjacent hats. Also, note            that the total number of swaps in the game may be larger than <strong>numSwaps</strong>,            because the magician may sometimes swap two hats that don't contain            the ball.<br /><br />Assume that the magician chose the swaps he makes            uniformly at random. That is, in each turn with probability 50% he            swapped the hats on spots 0 and 1, and with probability 50% he            swapped the hats on spots 1 and 2. Return the number of the spot            that is most likely to contain the ball at the end of the game. If            multiple spots are tied for the largest probability, return the            smallest one of them.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Definition           </h3>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 Class:               </td>               <td>                 BallAndHats               </td>             </tr>             <tr>               <td>                 Method:               </td>               <td>                 getHat               </td>             </tr>             <tr>               <td>                 Parameters:               </td>               <td>                 string, int               </td>             </tr>             <tr>               <td>                 Returns:               </td>               <td>                 int               </td>             </tr>             <tr>               <td>                 Method signature:               </td>               <td>                 int getHat(string hats, int numSwaps)               </td>             </tr>             <tr>               <td colspan="2">                 (be sure your method is public)               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>       </tr>       <tr>         <td>                    <br /></td>       </tr>       <tr>         <td colspan="2">           <h3>             Notes           </h3>         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           Two hats are adjacent if their spots differ by 1.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Constraints           </h3>         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>hats</strong> will contain exactly three characters.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>hats</strong> will contain exactly one 'o' character.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>hats</strong> will contain exactly two '.' characters.         </td>       </tr>       <tr>         <td align="center" valign="top">           -         </td>         <td>           <strong>numSwaps</strong> will be between 0 and 1000, inclusive.         </td>       </tr>       <tr>         <td colspan="2">           <h3>             Examples           </h3>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           0)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>".o."</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>1</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 0</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The spots 0 and 2 are equally likely to contain the ball                        after the hat that contains it is swapped once. We                        return the smallest spot number, which is 0.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           1)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"..o"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>0</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 2</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                       The ball does not change spots when 0 swaps are                        performed; therefore, the ball must be at spot 2.                     </td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           2)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"o.."</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>1</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           3)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"..o"</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>2</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 0</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>       <tr>         <td align="center" nowrap="true">           4)         </td>         <td>                    <br /></td>       </tr>       <tr>         <td>           &nbsp;&nbsp;&nbsp;&nbsp;         </td>         <td>           <table>             <tbody><tr>               <td>                 <table>                   <tbody><tr>                     <td>                       <pre>"o.."</pre>                     </td>                   </tr>                   <tr>                     <td>                       <pre>101</pre>                     </td>                   </tr>                 </tbody></table>               </td>             </tr>             <tr>               <td>                 <pre>Returns: 1</pre>               </td>             </tr>             <tr>               <td>                 <table>                   <tbody><tr>                     <td colspan="2">                                            <br /></td>                   </tr>                 </tbody></table>               </td>             </tr>           </tbody></table>         </td>       </tr>     </tbody></table>     <p>       This problem statement is the exclusive and proprietary property of        TopCoder, Inc. Any unauthorized use or reproduction of this information        without the prior written consent of TopCoder, Inc. is strictly        prohibited. (c)2003, TopCoder, Inc. All rights reserved.     </p>     </div><br /><br /><br />题意：给三个帽子，一个帽子下面有气球。一次SWAP可将相邻的两个帽子交换。每次SWAP的概率一样的，0和1，1和2交换的概率都是50%。给出初始状态，总共有numSwaps次SWAP了带气球的帽子。问最后气球在哪个位置的概率最大，如果有几个位置，则求最小的位置。<br /><br /><span style="color: red;">思路：想法题！numSwaps奇偶性讨论分析</span><br /><br /><span style="color: red;">176.5pt&nbsp; thinking速度太低，多分析分析，锻炼思维哦！</span><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;BallAndHats{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getHat(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;hats,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;numSwaps){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(hats[i]</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">o</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(numSwaps</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numSwaps</span><span style="color: #000000; ">%=</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;numSwaps</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;numSwaps</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">==</span><span style="color: #000000; ">2</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;numSwaps</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><br /><br /><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/182532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-10 09:03 <a href="http://www.cppblog.com/ArcTan/articles/182532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM548 DIVⅡ－500PT（二分答案OR贪心）</title><link>http://www.cppblog.com/ArcTan/articles/181224.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Tue, 03 Jul 2012 02:15:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/181224.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/181224.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/181224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/181224.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/181224.html</trackback:ping><description><![CDATA[二分答案倒是很快就想到了的，刚开始没有想好怎么验证check()。后面就跪在这里了。。。。tree.height&gt;=1啊。。。<br />毛哥给的办法是行的，贪心。ORZ，ORZ，我没写呀。。。。<br />爆零。。其实应该果断提交的吧？<br /><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;h[</span><span style="color: #000000; ">55</span><span style="color: #000000; ">],n;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;max(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;x</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">y</span><span style="color: #000000; ">?</span><span style="color: #000000; ">x:y;<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;check(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;last,now,i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(h[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000; ">=</span><span style="color: #000000; ">h[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(now</span><span style="color: #000000; ">+</span><span style="color: #000000; ">x</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">last)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(last</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,now</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />}<br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;KingdomAndTrees{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;minLevel(vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;heights){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;l,r,mid,i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">heights.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">heights[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;r</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(h[i]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">r)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="color: #000000; ">=</span><span style="color: #000000; ">h[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="color: #000000; ">=</span><span style="color: #000000; ">r</span><span style="color: #000000; ">+</span><span style="color: #000000; ">n;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(l</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">r){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(l</span><span style="color: #000000; ">+</span><span style="color: #000000; ">r)</span><span style="color: #000000; ">/</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(check(mid))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="color: #000000; ">=</span><span style="color: #000000; ">mid;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l</span><span style="color: #000000; ">=</span><span style="color: #000000; ">mid</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;r;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div> <br /> 下次TC要雪耻才行！<br />  </div><br /><br /><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/181224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-03 10:15 <a href="http://www.cppblog.com/ArcTan/articles/181224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SRM548 DIVⅡ－250PT（纯水题）</title><link>http://www.cppblog.com/ArcTan/articles/181223.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Tue, 03 Jul 2012 02:09:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/181223.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/181223.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/181223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/181223.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/181223.html</trackback:ping><description><![CDATA[<span style="color: #000000; "></span>第二次做TC，没能保住绿色。182.0PT<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t[</span><span style="color: #000000; ">51</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;KingdomAndDucks{<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;minDucks(vector&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;duckTypes){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,i,max,m;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(t,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(t));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">duckTypes.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[duckTypes[i]]</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;m</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">50</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(t[i]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">t[i]</span><span style="color: #000000; ">?</span><span style="color: #000000; ">max:t[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;m</span><span style="color: #000000; ">*</span><span style="color: #000000; ">max;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</span></div><br /><br />就只过了这一个题目，编码速度不行呀，得快快练习起来！<img src ="http://www.cppblog.com/ArcTan/aggbug/181223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-03 10:09 <a href="http://www.cppblog.com/ArcTan/articles/181223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>