#TG0001. 合成大西瓜

合成大西瓜

题目描述

众所周知,合成大西瓜是一款非常好玩的游戏,小A很喜欢这个游戏,他想要随时随地都玩这个游戏,可以请你帮帮他吗?

在这道题目中,我们将游戏进行了化简,规则如下:

  1. 游戏的场景是一个宽度为10,高度为20的矩形,最左边的列编号最小。每一个西瓜是一个1*1的正方形。

  2. 每次西瓜会从最上方出现,竖直下落。

  3. 西瓜和西瓜、西瓜和墙壁之间都不会发生任何反弹。

  4. 西瓜会和它上下左右相邻的西瓜尝试合成为一个大西瓜:只有当两个西瓜等级一样时才能合成,合成得到的大西瓜等级为原来的等级+1,出现在两个西瓜之中靠左的那个位置或靠下的那个位置。

  5. 在一个时刻可能会有多个西瓜可以合成,你应该按照这样的规则处理这些西瓜:竖着的两个西瓜优先于横着的两个西瓜。先处理最靠左的西瓜,当有若干最靠左的西瓜时,优先处理最靠下的西瓜。

  6. 如果你对于规则有任何问题,欢迎提出你的疑问。

输入格式

首先输入nn表示一共会出现的西瓜个数。

接下来nn行, 每行两个整数h,lh, l, hh表示这个西瓜出现在第hh列的上方, ll表示这个西瓜的等级。

输出格式

输出20行,每行10个数字表示这个位置的西瓜等级,0表示这个位置没有西瓜。

温馨提示:你最先输出的行应该是位置最高的行。

样例输入

5
2 1
1 3
7 1
7 3
8 1

样例输出

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 3 0 0 0
3 1 0 0 0 0 2 0 0 0

数据范围及约定

对于10%10\%的数据,保证n=1n=1

对于20%20\%的数据,保证n2n\leqslant2

对于40%40\%的数据,保证n5n\leqslant5

对于70%70\%的数据,保证n100n\leqslant100

对于100%100\%的数据,保证n500n\leqslant 500, l5l \leqslant 5

保证在每次出现新的西瓜必然可以下落(不会卡在地图外)