题库练习 [COCI-2006_2007-contest6]#1 KAMEN
← 上一题 下一题 →

A1088 | [COCI-2006_2007-contest6]#1 KAMEN

来源COCI
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

For nearly two weeks now, Domeniko has been lying in his bed because his friend Nedjeljko accidently threw a large rock on his left foot. As Domeniko has already solved the tasks from all Croatian national competitions since 1998, he has to find a new way to kill time.
Domeniko's new game is played on an R×C board. Initially every square is either empty or blocked by a wall. Domeniko throws a rock into the board by putting it in the topmost row of a column and then letting gravity do the rest.
Gravity works as follows:
• If the square under the rock is a wall or if the rock is in the bottom row of a column, then the rock remains there.
• If the square under the rock is empty, then the rock moves to that square.
• If the square under the rock contains another rock, then the falling rock may slide sideways:
o If the squares left and left-down of the rock are empty, then the rock slides one square left.
o If the rock doesn't slide left and the squares to the right and right-down are empty, then the rock slides one square right.
o Otherwise, the rock remains there and never moves again.
Domeniko will never throw another rock while the previous rock hasn't settled down.
Write a program that draws the board after Domeniko throws all his rocks into the board, if we know the columns that Domeniko threw his rocks into, in order.
Note: Domeniko will never throw a rock into column in which the top row isn't empty.

输入格式

The first line contains integers R and C (1 ≤ R ≤ 30000, 1 ≤ C ≤ 30), the size of the board.
Each of the following R lines contains C characters, the initial layout of the board. A '.' represents an empty field, while the uppercase letter 'X' is a square blocked by a wall.
The next line contains an integer N (1 ≤ N ≤ 100000), the number of rocks Domeniko throws.
Each of the following N lines contains an integer between 1 and C, the column into which Domeniko throws a rock (the leftmost column is column 1).
Note: In 60% of the test cases, R will be no more than 3
0.

输出格式

Output R lines, each containing C characters, the final layout of the board. Rocks should be presented with an uppercase letter 'O'.

输入输出样例

输入 #1
5 4 
.... 
.... 
X... 
.... 
.... 
4 
1 
1 
1 
1
输出 #1
.... 
O... 
X... 
.... 
OOO. 
输入 #2
7 6 
...... 
...... 
...XX. 
...... 
...... 
.XX... 
...... 
6 
1 
4 
4 
6 
4 
4 
输出 #2
...... 
...O.. 
...XX. 
...... 
.OO... 
.XX... 
O..O.O
C++ 编辑器
输入
输出