#P2434. Waves

    ID: 1435 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>搜索DFS数据结构队列USACO 2005 U S Open Silver

Waves

题目描述

Farmer John 的奶牛们非常喜欢往牧场旁边的湖里扔小石子。每当石子落入湖中,就会在湖面产生波纹,这些波纹会在湖面上传播开来。

湖面可以被视为一个巨大的二维网格。每一个格子都有一个水深值,这个值会根据波纹的传播不断变化。在没有任何石子落下之前,除了河岸上的格子以外,所有格子的深度都为 0。当绘制输出图像时,使用以下规则表示每个格子的水深状态:

'o':水深小于 0(即水位降低);

'-':水深等于 0;

'*':水深大于 0(即水位升高);

'X':该格子是原始的河岸(river bank);

波纹规则

每个石子被丢下时,会产生两个波:

上升波:从落点开始,按照菱形形状扩散一层,每秒扩展一格,每个位置水深 +1;

下降波:在石子落地的两秒后开始,同样以菱形方式扩散,每个位置水深 -1;

每个位置在同一时刻,多个波纹的效果会累加;

波纹遇到河岸时不会终止传播,而是在原位置反射回来,继续以菱形方式增长;

题目要求在特定时间 RR 输出以 (0,0)(0, 0) 为中心的 9×99 \times 9 区域的湖面状态。

输入格式

第一行包含四个整数:P,B1,B2,RP, B1, B2, R

PP:石子的数量,1P51 \leq P \leq 5

B1,B2B1, B2:两条河岸的 x 坐标;

RR:需要输出的时间点,1R5000001 \leq R \leq 500000

接下来的 PP 行每行包含三个整数:X,Y,TX, Y, T

表示第 ii 个石子落在 (X,Y)(X, Y),落地时间为 TT

所有坐标在区间 ([-500000, 500000]$ 之间;

不会有石子落在河岸上。

输出格式

输出 9×99 \times 9 的字符矩阵,表示在时间 RR 时,以 (0,0)(0,0) 为中心的区域内(从 (4,4)(-4,-4)(4,4)(4,4))的湖面状态。

2 4 100 4
-3 0 1
0 0 2
--------X
-*------X
*-*-*---X
-o-*-*--X
o-----*-X
-o-*-*--X
*-*-*---X
-*------X
--------X