#2531. 波纹

波纹

题目描述

约翰的奶牛喜欢在水塘里打水漂玩。当石子击打水面后,水波就扩散开来。 湖面用一个矩阵来表示.水面存在一种叫深度的概念,用来描述波的传播.当石子打击水面之前,每个格子(\red{(}除了那些在水坝上的格子)\red{)}的深度都为0.\red{0.}当波 传播开来后,每个格子描述如下: img

当一个石子打击水面后,就会产生一个沿菱形方向每秒向外传播一格的上凸水波,并且伸水面的深度提高1,\red{1,}2\red{2}秒之后,又产生一个下凹的水波,并目使水面的深 度降低1,\red{1,}同样沿萎形方向每秒向外传播一格。一次击打仅产生2\red{2}个水波,即一个上凸水波和紧跟的一个下凹水波。 例如,下图描述了一个石子打道湖中心后,0,\red{0,}1,\red{1,}2,\red{2,}3\red{3}秒时的情况: img

河堤用X\red{X}表示,并且和湖的宽(\red{(}从顶到底)\red{)}一样长,当一列波碰到河堤,河堤将反弹波,下面是一列波碰到河堤的情形。为了简单明了,图中只画了上凸波,而舍去了下凹波: img

当一些波相遇后,他们的传播方向不会改变,也就是说,相遇后1\red{1}秒,各波仍按原传播方向移动 记录将表现出他们的复合情形,例如: img

写一个程序,告诉奶牛波随着时间将如何传播.

输入格式

第1\red{1}行:

四个用空格隔开的整数PjBi,\red{P_j B_i,}B2,\red{B_2,}R.P(1≤\red{R. P(1≤}P≤\red{P≤}5)\red{5)}表示石子的个数,Bi(−5×\red{B_i(-5×}100000≤\red{100000≤}Bi≤\red{B_i≤}5×\red{5×}100000)\red{100000)}和B2(\red{B_2(}−5×\red{-5×}100000≤\red{100000≤}B2≤\red{B_2≤}5×\red{5×}100000)\red{100000)}表示两个河堤的z\red{z}坐标,R(1≤\red{R(1≤}R≤\red{R≤}5×\red{5×}100000)\red{100000)}表示你要描述湖面多少秒.

没有两个石子会在同一时间砸到同一地点,两个河堤一定有不同的坐标,没有石子会砸到河堤上去.

第2\red{2}到P+1\red{P+1}行:

每行有三个用空格隔开的整数描述了一颗石子,X,\red{X,}KT(−5×\red{K T(-5×}100000≤\red{100000≤}X,\red{X,}KT≤\red{K T≤}5×\red{5×}100000).X\red{100000).X}.y\red{y}表示石子砸的地点的坐标,T\red{T}表示石子是什么时候砸下去的.

输出格式

输出是一个9\red{9}半9\red{9}的矩阵,中心在(0,\red{(0,}0)\red{0)}点.左下点的坐标为(−4,\red{(-4,}−4),\red{-4),}右上点的坐标为(4,\red{(4,}4)\red{4)}.这个 矩阵表现的是R\red{R}秒时湖面状态.

样例

输入样例

2 4 100 4
-3 0 1
0 0 2

输出样例

--------X
-*------X
*-*-*---X
-o-*-*--X
o-----*-X
-o-*-*--X
*-*-*---X
-*------X
--------X