C. T2 士兵

    传统题 文件IO:soldier 1000ms 256MiB

T2 士兵

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

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

你将在第一行派出kk个士兵,第ii个士兵的起点为xix_i列,且会尽可能地向第nn行进发,规则如下:

  • 如果当前位置的下一行是空格,则向下移动一格
  • 如果当前位置的下一行是障碍或者已经到了第nn行,则停止。
  • 如果下一行是已停止的士兵,则当前位置的左侧和左下位置都为空时,会向左移动一列;如果右侧和右下位置都为空时,会向右移动一列;如果都不为满足,则停止不动。

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

输入格式

第一行两个整数n,mn,m

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

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

接下来kk行,第ii行一个整数xix_i表示第ii个士兵从第一行第xix_i列依次出发。

输出格式

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

输入输出样例

样例输入 #1

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

样例输出 #1

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

样例解释 #1

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

样例输入 #2

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

样例输出 #2

......
...O..
...XX.
......
.OO...
.XX...
O..O.O

样例解释 #1

第一个士兵将会到达第77行第11列,第二个士兵将会到达第22行第44列,第三个士兵将会到达第55行第33列,第四个士兵将会到达第77行第66列,第五个士兵第55行第22列,第六个士兵将会到达第77行第44列。

数据范围与约定

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

友爸信奥-2024CSPJ组复赛-十连测-第六测

未参加
状态
已结束
规则
IOI(严格)
题目
4
开始于
2024-10-8 12:00
结束于
2025-2-28 10:00
持续时间
3430 小时
主持人
参赛人数
39