#P5736. 波纹

波纹

题目描述

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

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

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

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

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

输入格式

1{1}行:

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

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

2{2}P+1{P+1}行:

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

输出格式

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

样例

输入样例

2 4 100 4
-3 0 1
0 0 2

输出样例

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