<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>西瓜田 &#187; 打酱油</title>
	<atom:link href="http://blog.thpiano.com/?feed=rss2&#038;tag=%E6%89%93%E9%85%B1%E6%B2%B9" rel="self" type="application/rss+xml" />
	<link>http://blog.thpiano.com</link>
	<description>无复洛城东</description>
	<lastBuildDate>Tue, 19 Jan 2021 03:54:37 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>第4届华为编程大赛决赛试题</title>
		<link>http://blog.thpiano.com/?p=579</link>
		<comments>http://blog.thpiano.com/?p=579#comments</comments>
		<pubDate>Sun, 27 May 2012 09:16:03 +0000</pubDate>
		<dc:creator>suika</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[2012年华为杯校园编程大赛决赛]]></category>
		<category><![CDATA[2012年华为编程大赛]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[华为编程大赛]]></category>
		<category><![CDATA[打酱油]]></category>
		<category><![CDATA[题目]]></category>

		<guid isPermaLink="false">http://blog.thpiano.com/?p=579</guid>
		<description><![CDATA[这回是自己偷偷把试题带回来了。这次比赛一共就一道题，上午9点做到晚上5点，不能上网，中午管饭 之前听说往届都有界面需求，这机房只有vc6，所以前几天还补了下mfc，果然太难用了…… 今天一看题目，不需要界面，还好还好 不过也是做得异常地郁闷，真是费劲千辛万苦最后才搞出一个不怎么靠谱的答案，对比赛成绩不能有任何的指望了，就当是蹭饭机房一日游 题目是这样的： ======================================================================= 编程题（共1题，100分。请上机编写程序，按题目要求提交文件。测试用例不对考生公开，凡不满足提交要求导致不能运行或用例不通过，不予评分。） &#160; 1. 俄罗斯方块之棋盘覆盖 俄罗斯方块是一款风靡全球的益智类游戏。由俄罗斯人阿列克谢·帕基特诺夫发明，故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块，使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜，从而家喻户晓，风靡世界。 &#160; 本试题是在俄罗斯方块几种常见的方块基础上，在指定大小和障碍的棋盘上，用标准的方块形状，完成对棋盘的覆盖。用于覆盖棋盘的方块可以是下文所给出方块的全集，也可以是其中的任意一个子集，且使用的方块数量不限，形状变化不限。 &#160; 棋盘大小： 棋盘大小为21行21列的正方形。按照从上到下，从左到右，从1开始，依次进行编号，直到最右下方的格子标识为441。 可选方块： 可选方块为标准的俄罗斯方块形状，包括其标准的旋转变化。基本形状如图所示： 各形状的变化如图所示（字母为方块编号）：  障碍说明： 棋盘上仅有一处障碍无法放置方块，障碍可处于棋盘任意位置。障碍为基本形状a及其所有的旋转变化，如图所示： 输入输出要求： 输入文件名为testin.txt，格式如下所示，各数字用空格隔开，各数字表示棋盘格子编号。 2 3 22 23 该输入表示障碍位于棋盘的左上角。 输出文件名为testout.txt，要求先输出棋盘覆盖结果，再输出未覆盖的格子个数。输出棋盘用21行21列数字/字母表示，其中0表示未覆盖的格子，1表示障碍，字母表示对应方块编号（字母对应关系见“可选方块”一节）。最后输出未覆盖格子个数。这里以6行10列棋盘举例示意输出格式（注意：实际输出应该是21行21列，对应方块形状用对应的字母表示）： &#160; 要求： 1、  用所提供的方块尽可能覆盖棋盘并输出结果； 2、  在（1）的基础上，棋盘上的空格越少越好。 交付件要求： C/C++：需要提交可执行文件和压缩打包的源代码工程 JAVA：需要提交压缩打包的整个编码工程目录 &#160; ============================================================== 点此直接跳到最后的构造法及代码 一看题目，第一感觉是搜索空间有点大，第二感觉是说不定旋转对称性可以利用，不管了先给他搜上再说 慢吞吞地写完后，一运行，╮(╯_╰)╭ ………………加了记忆也没用 然后开始使用无脑流乱改，眼瞅着那个长条挺好用，给我把大片的空白全填了去！ 填到只剩6行（考虑到unsigned long 是128位，6 * 21 =126正好小于128就留了6行），还是特别龟速 然后稍微注意了一下，用我的土算法，实际搜索范围在7x7的时候就很慢了，再往上肯定无理 所以要么换搜索算法，要么就把搜索范围进一步缩小。 之前产生用长条填的想法，是基于以前看的俄罗斯方块视频。那位神玩家基本可以在任何情况下都使用长条一次性消去三四行，所以我觉得这道题可以整行整行地填充以缩小搜索范围，而不至于太过影响最终结果。看来光是按行填还不够 算法方面暂时想不出什么办法了，我需要一个好的启发式搜索剪枝算法！但是想不出……先吃饭嗯。这黄瓜好辣 吃完饭，想想觉得有个不怎么靠谱的结果总比一万年也跑不出个结果要强，于是把原来的算法改成不可靠算法，遍历的次序随机化，也只按照一定概率进行回溯。这下结果总算是有了，还可以跑个几百次取最佳值，最佳结果一般在9到20之间浮动。我在想，一共21行，这样的话就是每行不超过一个空，这电脑已经能玩的比我还好了。但是毕竟是比赛口牙，时间也还有，就再努努力试试 [...]]]></description>
			<content:encoded><![CDATA[<p>这回是自己偷偷把试题带回来了。这次比赛一共就一道题，上午9点做到晚上5点，不能上网，中午管饭<br />
之前听说往届都有界面需求，这机房只有vc6，所以前几天还补了下mfc，果然太难用了……<br />
今天一看题目，不需要界面，还好还好<br />
不过也是做得异常地郁闷，真是费劲千辛万苦最后才搞出一个不怎么靠谱的答案，对比赛成绩不能有任何的指望了，就当是蹭饭机房一日游</p>
<p>题目是这样的：<span id="more-579"></span></p>
<p>=======================================================================</p>
<h2><strong>编程题（共</strong><strong>1</strong><strong>题，100分。请上机编写程序，按题目要求提交文件。测试用例不对考生公开，凡不满足提交要求导致不能运行或用例不通过，不予评分。）</strong></h2>
<p>&nbsp;</p>
<h3><strong>1.</strong> <strong>俄罗斯方块之棋盘覆盖</strong></h3>
<p>俄罗斯方块是一款风靡全球的益智类游戏。由俄罗斯人阿列克谢·帕基特诺夫发明，故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块，使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜，从而家喻户晓，风靡世界。</p>
<p>&nbsp;</p>
<p>本试题是在俄罗斯方块几种常见的方块基础上，在指定大小和障碍的棋盘上，用标准的方块形状，完成对棋盘的覆盖。用于覆盖棋盘的方块可以是下文所给出方块的全集，也可以是其中的任意一个子集，且使用的方块数量不限，形状变化不限。</p>
<p>&nbsp;</p>
<p align="left"><strong>棋盘大小：</strong></p>
<p>棋盘大小为21行21列的正方形。按照从上到下，从左到右，从1开始，依次进行编号，直到最右下方的格子标识为441。</p>
<p align="left">可选方块：</p>
<p>可选方块为标准的俄罗斯方块形状，包括其标准的旋转变化。基本形状如图所示：</p>
<p><img class="alignnone size-full wp-image-580" title="clip_image002" src="http://blog.thpiano.com/wp-content/uploads/2012/05/clip_image002.jpg" alt="" width="287" height="119" /></p>
<p>各形状的变化如图所示（字母为方块编号）：</p>
<p><img title="tetris" src="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名.jpg" alt="" width="365" height="333" /></p>
<p align="left"><strong> 障碍说明：</strong></p>
<p>棋盘上仅有一处障碍无法放置方块，障碍可处于棋盘任意位置。障碍为基本形状a及其所有的旋转变化，如图所示：</p>
<p><a href="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名1.jpg"><img class="alignnone size-full wp-image-581" title="未命名1" src="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名1.jpg" alt="" width="91" height="41" /></a></p>
<p align="left"><strong>输入输出要求：</strong></p>
<p>输入文件名为testin.txt，格式如下所示，各数字用空格隔开，各数字表示棋盘格子编号。</p>
<p>2 3 22 23</p>
<p>该输入表示障碍<a href="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名2.jpg"><img class="alignnone size-full wp-image-582" title="未命名2" src="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名2.jpg" alt="" width="35" height="32" /></a>位于棋盘的左上角。</p>
<p>输出文件名为testout.txt，要求先输出棋盘覆盖结果，再输出未覆盖的格子个数。输出棋盘用21行21列数字/字母表示，其中0表示未覆盖的格子，1表示障碍，字母表示对应方块编号（字母对应关系见“可选方块”一节）。最后输出未覆盖格子个数。这里以6行10列棋盘举例示意输出格式（注意：实际输出应该是21行21列，对应方块形状用对应的字母表示）：</p>
<p><a href="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名sd.jpg"><img class="alignnone size-full wp-image-586" title="未命名sd" src="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名sd.jpg" alt="" width="177" height="116" /></a></p>
<p>&nbsp;</p>
<p align="left"><strong>要求：</strong></p>
<p align="left">1、  用所提供的方块尽可能覆盖棋盘并输出结果；</p>
<p align="left">2、  在（1）的基础上，棋盘上的空格越少越好。</p>
<p align="left"><strong>交付件要求：</strong></p>
<p align="left">C/C++：需要提交可执行文件和压缩打包的源代码工程</p>
<p>JAVA：需要提交压缩打包的整个编码工程目录</p>
<p>&nbsp;</p>
<p>==============================================================<br />
<a href="#answer" title="点此直接跳到最后的构造法及代码">点此直接跳到最后的构造法及代码</a></p>
<p>一看题目，第一感觉是搜索空间有点大，第二感觉是说不定旋转对称性可以利用，不管了先给他搜上再说</p>
<p>慢吞吞地写完后，一运行，╮(╯_╰)╭ ………………加了记忆也没用</p>
<p>然后开始使用无脑流乱改，眼瞅着那个长条挺好用，给我把大片的空白全填了去！</p>
<p>填到只剩6行（考虑到unsigned long 是128位，6 * 21 =126正好小于128就留了6行），还是特别龟速</p>
<p>然后稍微注意了一下，用我的土算法，实际搜索范围在7x7的时候就很慢了，再往上肯定无理</p>
<p>所以要么换搜索算法，要么就把搜索范围进一步缩小。</p>
<p>之前产生用长条填的想法，是基于以前看的俄罗斯方块视频。那位神玩家基本可以在任何情况下都使用长条一次性消去三四行，所以我觉得这道题可以整行整行地填充以缩小搜索范围，而不至于太过影响最终结果。看来光是按行填还不够</p>
<p>算法方面暂时想不出什么办法了，我需要一个好的启发式搜索剪枝算法！但是想不出……先吃饭嗯。这黄瓜好辣</p>
<p>吃完饭，想想觉得有个不怎么靠谱的结果总比一万年也跑不出个结果要强，于是把原来的算法改成不可靠算法，遍历的次序随机化，也只按照一定概率进行回溯。这下结果总算是有了，还可以跑个几百次取最佳值，最佳结果一般在9到20之间浮动。我在想，一共21行，这样的话就是每行不超过一个空，这电脑已经能玩的比我还好了。但是毕竟是比赛口牙，时间也还有，就再努努力试试</p>
<p>于是视线重回搜索范围，在长条填充的想法上进一步深入，填到只剩一个很小的方形如何？毕竟之前测试发现小范围搜索下遗留的空位也都很少</p>
<p>先看地图大小，21x21，长条填充的话是4+4+4+4+4+1（竖着），所以要想填充完整，这个方形的尺寸只能是4的倍数或4的倍数+1</p>
<p>考虑到之前的7x7最大值，我选择5x5的方形尺寸。21-5=16，这样只要保证这个方形两边的余下的长度都能被4整除，就可以用长条完美覆盖了</p>
<p>而障碍物的尺寸是2x3，长度为2的那条边肯定能被起始位置为4的倍数、尺寸为5的方形装入。而长度为3的那条边讨论起来就有点麻烦了</p>
<p>稍微画了下图，发现用障碍物的左上角位置对4取模，余数为0、1、2都没问题，3的话就只有增加方形尺寸。于是在这种情况下，把方形尺寸加到8，依旧可以较为完整地用长条铺满，只不过需要补一个长条，损失一个无法填补的位置。5x8也小于7x7，性能也可以接受。</p>
<p>之后做了下实验，5x5的小方形里会留1个空，5x8的小方形里不会留空，但是5x8时外面填充会有一个空，这样两处加起来也正好是1个空，比之前的随机算法效果好多了</p>
<p>不过依旧是不完美算法OTL ，不知道该怎么证明子空间的最优性。再说满眼都是 f 这算什么嘛！也完全不能保证找到最优解。最优解我是无论如何也想不出的，只能再多查找资料、多积累了。</p>
<p>&nbsp;</p>
<p>后记：</p>
<p>和罗同学讨论、阅读了宝贵的博客留言后，思路也稍微明晰一点了。首先21x21，最优解为遗留1个空，这个我就完全没有察觉到……太沉浸在性能测试上了，性能测试时使用的棋盘大小又不是21x21的</p>
<p>晚上回来重新debug，发现自己的算法还是勉强可以完成只遗留1个空的（通过枚举小方形，但依旧不知道怎么证明），但是比赛时提交的代码里有错误，横向的情况被我写反了（左右颠倒了OTL 都没有认真核对障碍的形状就交上去了），这样一来一半的测试用例肯定都通不过了</p>
<p>我的实力也就仅此而已了，愿这次的失败能让我沉淀得更深<br />
<a name="answer"></a><br />
============================================================================</p>
<p>这两天也和网友进行了讨论，还是构造法最高啊……</p>
<p>构造法说起来也很简单，首先利用对称性和可旋转性，将输入缩减为一种（这里都缩减为<a href="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名2.jpg"><img class="alignnone size-full wp-image-582" title="未命名2" src="http://blog.thpiano.com/wp-content/uploads/2012/05/未命名2.jpg" alt="" width="35" height="32" /></a>），之后对输入的位置进行考虑：<br />
若位于左上角，则可以通过如下的方式填充：</p>
<p><a href="http://blog.thpiano.com/wp-content/uploads/2012/05/3.jpg"><img class="alignnone size-full wp-image-595" title="3" src="http://blog.thpiano.com/wp-content/uploads/2012/05/3.jpg" alt="" width="195" height="54" /></a></p>
<p>剩余的空格就是左上的第一个格子，剩下的21x16区域用长条可以完美填充<br />
（右下角也是完全一样）<br />
若不位于左上角或右下角，则可通过加入两个L，变成<a href="http://blog.thpiano.com/wp-content/uploads/2012/05/2.jpg"><img class="alignnone size-full wp-image-597" title="2" src="http://blog.thpiano.com/wp-content/uploads/2012/05/2.jpg" alt="" width="42" height="36" /></a>或<a href="http://blog.thpiano.com/wp-content/uploads/2012/05/1.jpg"><img class="alignnone size-full wp-image-596" title="1" src="http://blog.thpiano.com/wp-content/uploads/2012/05/1.jpg" alt="" width="42" height="36" /></a>的4x3的障碍。将障碍体积变为4x3后，剩下的区域再用长条填充，可以保证填充至只剩1个格子（简单画画图就能发现了，不证明了）。<br />
被别人一点拨，感觉真的是醍醐灌顶，如此简易的分析方法自己便就是做不到口牙……！<br />
照着这个思路，自己也大致写了下代码：</p>
<p>&nbsp;</p>
<div class="codecolorer-container cpp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339900;">#include &lt;stdio.h&gt;</span><br />
<span style="color: #339900;">#include &lt;stdlib.h&gt;</span><br />
<span style="color: #339900;">#include &lt;memory.h&gt;</span><br />
<br />
<span style="color: #339900;">#define TABLE_SIZE 21</span><br />
<br />
<span style="color: #666666;">// store the input</span><br />
<span style="color: #0000ff;">int</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">// store the hole answer</span><br />
<span style="color: #0000ff;">char</span> table<span style="color: #008000;">&#91;</span>TABLE_SIZE <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <br />
<br />
<span style="color: #0000ff;">bool</span> isVertical <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">void</span> Initialize<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">void</span> Output<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">FILE</span><span style="color: #000040;">*</span> f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">void</span> Construct<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">FILE</span><span style="color: #000040;">*</span> fw <span style="color: #000080;">=</span> <span style="color: #0000dd;">fopen</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;testout.txt&quot;</span>, <span style="color: #FF0000;">&quot;w&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">FILE</span><span style="color: #000040;">*</span> fp <span style="color: #000080;">=</span> <span style="color: #0000dd;">fopen</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;testin.txt&quot;</span>, <span style="color: #FF0000;">&quot;r&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>fp<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;file not found!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #666666;">// main loop</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span><span style="color: #0000dd;">feof</span><span style="color: #008000;">&#40;</span>fp<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fscanf</span><span style="color: #008000;">&#40;</span>fp, <span style="color: #FF0000;">&quot;%d %d %d %d&quot;</span>, <span style="color: #000040;">&amp;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, <span style="color: #000040;">&amp;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, <span style="color: #000040;">&amp;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span>, <span style="color: #000040;">&amp;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Initialize<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Construct<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Output<span style="color: #008000;">&#40;</span>fw<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #0000dd;">fclose</span><span style="color: #008000;">&#40;</span>fp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000dd;">fclose</span><span style="color: #008000;">&#40;</span>fw<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> Initialize<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">int</span> i, j, x, y<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>table, <span style="color: #FF0000;">'f'</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>table<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <br />
&nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">||</span> input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;</span> TABLE_SIZE <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;input number error!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">exit</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000040;">--</span>input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// input pos start from 1... but I start from 0</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666;">//sort input</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;</span> input<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> temp <span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>j <span style="color: #000080;">=</span> i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&gt;=</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">&amp;&amp;</span> input<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;</span> temp<span style="color: #008080;">;</span> <span style="color: #000040;">--</span>j<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; input<span style="color: #008000;">&#91;</span>j <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; input<span style="color: #008000;">&#91;</span>j <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> temp<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666;">//rotate input to 3x2 if it is 2x3</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">-</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; isVertical <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x <span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span> TABLE_SIZE<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y <span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">/</span> TABLE_SIZE<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> x <span style="color: #000040;">*</span> TABLE_SIZE <span style="color: #000040;">+</span> TABLE_SIZE <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">-</span> y<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">^</span><span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">^</span><span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">^</span><span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> Construct<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">int</span> i, j, x, y<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; x <span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span> TABLE_SIZE<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; y <span style="color: #000080;">=</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">/</span> TABLE_SIZE<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">||</span> input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> TABLE_SIZE <span style="color: #000040;">*</span> TABLE_SIZE <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span> <span style="color: #000040;">-</span> TABLE_SIZE<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span> <span style="color: #666666;">// in the corner (left-top or right-bottom)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>input<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'0'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>TABLE_SIZE <span style="color: #000040;">*</span> TABLE_SIZE <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'0'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> TABLE_SIZE<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">+</span> y <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'a'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">+</span> <span style="color: #008000;">&#40;</span>y <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'a'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666;">//fill it with L in a 4x3 tiny block (3x4 is also useful)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>y <span style="color: #000040;">!</span><span style="color: #000080;">=</span> TABLE_SIZE <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span> <span style="color: #000040;">&amp;&amp;</span> x <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> x <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> x <span style="color: #000040;">+</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>j <span style="color: #000080;">=</span> y<span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> y <span style="color: #000040;">+</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>j<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">+</span> j <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'c'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> x <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> x <span style="color: #000040;">+</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>j <span style="color: #000080;">=</span> y <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> y <span style="color: #000040;">+</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>j<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">+</span> j <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'c'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666;">//leave a hole anywhere</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>table<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #FF0000;">'f'</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'0'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>TABLE_SIZE <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'0'</span><span style="color: #008080;">;</span>&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #666666;">// fill the barrier</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; table<span style="color: #008000;">&#91;</span>input<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'1'</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> Output<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">FILE</span><span style="color: #000040;">*</span> fp<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">int</span> i, j<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> TABLE_SIZE<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>j <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> TABLE_SIZE<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>j<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>isVertical<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>fp, <span style="color: #FF0000;">&quot;%c &quot;</span>, table<span style="color: #008000;">&#91;</span>TABLE_SIZE <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">-</span> i <span style="color: #000040;">+</span> j <span style="color: #000040;">*</span> TABLE_SIZE<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span><span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>fp, <span style="color: #FF0000;">&quot;%c &quot;</span>, table<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">*</span> TABLE_SIZE <span style="color: #000040;">+</span> j<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>fp, <span style="color: #FF0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>fp, <span style="color: #FF0000;">&quot;1<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thpiano.com/?feed=rss2&#038;p=579</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
