开始: 2023-10-02 00:00:00

1002复赛周赛003

结束: 2023-10-21 00:00:00
当前  2025-01-24 19:14:51  类型: IOI  状态: 已经结束 

P2. 士兵
描述

你手里有一个nm列的空间,为'.'的点是空的区域,为'X'的区域有一个障碍。

你将在第一行派出k个士兵,第i个士兵的起点为x_i列,且会尽可能地向第n行进发,规则如下:

- 如果当前位置的下一行是空格,则向下移动一格

- 如果当前位置的下一行是障碍或者已经到了第n行,则停止。

- 如果下一行是已停止的士兵,则当前位置的左侧和左下位置都为空时,会向左移动一列;如果右侧和右下位置都为空时,会向右移动一列;如果都不为满足,则停止不动。

每个士兵将会在前一个士兵停止不动后再出发,停止后要将所在位置修改存为'O'。


输入

第一行两个整数n,m

接下来n行,每行m个字符表示初始的地图,每个字符可能为'.'或'X'。

接下来一个整数k表示士兵的数量。

接下来k行,第i行一个整数x_i表示第i个士兵从第一行第x_i列依次出发。


输出

你需要输出一个n行,每行m个字符表示所有士兵停止移动后的地图。


样例

输入

5 4
....
....
X...
....
....
4
1
1
1
1

输出

....
O...
X...
....
OOO.

输入

7 6
......
......
...XX.
......
......
.XX...
......
6
1
4
4
6
4
4

输出

......
...O..
...XX.
......
.OO...
.XX...
O..O.O
提示

样例解释 #1

四位士兵都从第一行第一列出发。第一个士兵将被障碍挡住,停在第二行第一列。第二个士兵将会先向右下移动,然后一直向下移动。第三个士兵先向下移动,遇到第一个士兵后向右移动,遇到第二个士兵后向左移动。第四个士兵先向下移动,遇到第一个士兵后向右移动,遇到第二个士兵后将会向右移动。

数据范围与约定

- 对于 60\% 的数据,保证n\leq 30

- 对于 100\% 的数据,保证1\leq n \leq 3*10^4,1\leq m \leq 30,1\leq q \leq 10^5,保证不会"堵塞"。


提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交