RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
COCI00034

Kamen

Platinum III 플래티넘 III
난이도
0.600s
시간 제한
32MB
메모리 제한
1
맞았습니다!!
1
제출 수
100.0%
정답률
레이팅

의견: 0

설명

For nearly two weeks now, Domeniko has been lying in his bed because his friend Nedjeljko accidentally 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 \times 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:
    • If the squares left and left-down of the rock are empty, then the rock slides one square left.
    • 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.
    • 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 a column in which the top row isn't empty.

제약
입력 형식

The first line contains integers \(R\) and \(C\) (\(1 \le R, C \le 100\)), 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 \(M\) (\(1 \le M \le 100\,000\)), the number of rocks.

Each of the following \(M\) lines contains an integer between \(1\) and \(C\), the column into which Domeniko throws a rock (the leftmost column is column \(1\)).

Note: In \(50\%\) of the test cases, \(M\) will be no more than \(1\,000\).

출력 형식

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

서브태스크
서브태스크점수설명

Subtask 1

50점
예제 1
입력
5 4
....
....
X...
....
....
4
1
1
1
1
출력
....
O...
X...
....
OOO.
예제 2
입력
7 6
......
......
...XX.
......
......
.XX...
......
6
1
4
4
6
4
4
출력
......
...O..
...XX.
......
.OO...
.XX...
O..O.O
문제 정보

riseoj 작성

출처 COCI 2006/2007 Contest 6

평가 및 의견

Kamen

개요
출제자 난이도 Platinum III 플래티넘 III 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Kamen

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8