小红的俄罗斯方块
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红正在玩一个奇怪的俄罗斯方块游戏。已知这个俄罗斯方块只有以下一种图形:


这个图形可以顺时针不旋转,旋转90度、180度、270度,分别变成以下四种情况:


当图形无法下落的时候,会停住不动。
请注意,这个俄罗斯方块没有消除的情况。也就是说会越累积越高。
假设游戏共有 8 列,高度是无限的。请你输出最终每一列的高度。

输入描述:

第一行输入方块的数量 n
接下来的 n 行,每行输入两个正整数 ab,分别代表方块旋转的角度以及从哪一列下落的。方块是顺序下落的,也就是说前一个方块落到底之前,后一个方块不会开始下落。

a 一定是 0、90、180、270四个中的一个,b 代表方块的左端那一列,保证右端不会超过8。也就是说,若 a为0或180,;若a为 90或270,

输出描述:

输出 8 个正整数,分别代表最终8列的高度。
示例1

输入

复制
3
0 1
90 2
180 4

输出

复制
3 3 3 4 4 0 0 0

说明

第一个方块下落后,地图变成了这样:
第二个方块下落后,地图变成了这样:
第三个方块下落后,地图变成了这样:

最终,8列的高度为:3 3 3 4 4 0 0 0