#P2434. Waves
Waves
题目描述
Farmer John 的奶牛们非常喜欢往牧场旁边的湖里扔小石子。每当石子落入湖中,就会在湖面产生波纹,这些波纹会在湖面上传播开来。
湖面可以被视为一个巨大的二维网格。每一个格子都有一个水深值,这个值会根据波纹的传播不断变化。在没有任何石子落下之前,除了河岸上的格子以外,所有格子的深度都为 0。当绘制输出图像时,使用以下规则表示每个格子的水深状态:
'o':水深小于 0(即水位降低);
'-':水深等于 0;
'*':水深大于 0(即水位升高);
'X':该格子是原始的河岸(river bank);
波纹规则
每个石子被丢下时,会产生两个波:
上升波:从落点开始,按照菱形形状扩散一层,每秒扩展一格,每个位置水深 +1;
下降波:在石子落地的两秒后开始,同样以菱形方式扩散,每个位置水深 -1;
每个位置在同一时刻,多个波纹的效果会累加;
波纹遇到河岸时不会终止传播,而是在原位置反射回来,继续以菱形方式增长;
题目要求在特定时间 输出以 为中心的 区域的湖面状态。
输入格式
第一行包含四个整数:
:石子的数量,;
:两条河岸的 x 坐标;
:需要输出的时间点,;
接下来的 行每行包含三个整数:
表示第 个石子落在 ,落地时间为 ;
所有坐标在区间 ([-500000, 500000]$ 之间;
不会有石子落在河岸上。
输出格式
输出 的字符矩阵,表示在时间 时,以 为中心的区域内(从 到 )的湖面状态。
2 4 100 4
-3 0 1
0 0 2
--------X
-*------X
*-*-*---X
-o-*-*--X
o-----*-X
-o-*-*--X
*-*-*---X
-*------X
--------X