COCI 2014/2015 contest6 3- 블록 (METEOR) > 문제은행 : 정보올림피아드&알고리즘




2826 : 블록 (METEOR)

제한시간
1000 ms   
메모리제한
128 MB   
해결횟수
14 회   
시도횟수
93 회   

문제

대형이는 R행 S열의 격자 상에서 블록이 낙하하는 게임을 만들려고 한다.

 

 

 


검은 칸은 땅을 의미하고, 빨간 칸은 블록을 의미한다. 블록에 해당되는 칸들은 한 덩어리를 이루고 있으며, 땅에 해당되는 칸들도 한 덩어리를 이루고 있다. 땅은 움직이지 않지만, 블록은 매 초마다 한 칸씩 아래로 움직인다. 물론 블록 아래에 땅이 있으면 블록은 움직이지 않는다.

 

위와 같은 경우, 1초 후의 게임판의 상태는 아래와 같다. 시간이 더 지나도 게임판은 아래와 같은 형태이다.

 

 

 


대형이는 문뜩 블록이 다 낙하한 후의 게임판의 상태를 알려고 한다. 허나 격자의 크기가 큰 경우, 블록이 낙하하는 데 많은 시간이 걸리기 때문에 게임판의 상태를 알기 쉽지 않다. 대형이를 도와 충분한 시간이 지난 후 게임판의 상태를 구하는 프로그램을 작성하여라.


입력형식

첫 번째 줄에 게임판의 크기 R, S가 주어진다. (3 ≤ R ≤ S ≤ 3,000) 두 번째 줄부터 R개의 줄에는 게임판의 정보가 주어진다. '.'는 빈 공간, '#'는 땅, 'X'는 블록을 의미한다.

문제를 간단히 하기 위하여, 가장 마지막 줄에는 오직 '#'로만 주어진다. 또, 특정 줄에는 '.'만 있어서 그 위의 줄들에는 '#'가 없고, 그 아래의 줄들에는 'X'가 없음이 보장된다.


출력형식

충분한 시간이 지난 후 게임판의 상태를 출력한다.

입력 예

5 6
.XXXX.
...X..
......
#..###
######

출력 예

......
.XXXX.
...X..
#..###
######

입력 예

9 7
XXX.XXX
X.XXX.X
X..X..X
X.....X
.......
.#...#.
.##.##.
.#####.
#######

출력 예

.......
.......
.......
.......
XXX.XXX
X#XXX#X
X##X##X
X#####X
#######


경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호

TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com

Copyrightⓒ 2010 jungol. All right reserved.

TOP