페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#1539

[초등부] 2021 KOI 1차 2교시 실기 대비 모의고사

자리배치1 1초 128MB

문제

정올의 학생들은 항상 제자리에 있지 못하고 돌아다니기를 좋아한다. 

오늘은 마침 선생님들이 자리를 비우셨고, 오기로 했던 정 선생님도 차가 막혀서 늦게 오게 되자, 

모든 학생이 자리에 앉아 있지 않고 신이 나서 뛰어 놀고 있었다.

그러던 도중에 마침 정 선생님이 도착했고, 아무도 자리에 앉아 있지 않은 것을 보고나서 화가 나버린 정 선생님은 

화를 내며 학생들에게 자리에 앉으라고 지시하였다.

화가 난 정 선생님은 학생들에게 벌을 주기로 하였는데, 

벌을 주는 시간을 모든 학생들이 자리에 앉을 때 까지 걸리는 시간만큼 벌을 주기로 했다. 

즉, 마지막 학생이 앉았을 때 걸린 시간만큼 학생들은 벌을 받게 되는 것이다.

당연히 어느 누구도 벌을 받는 것을 좋아하진 않지만, 많은 학생들이 정 선생님을 무서워(?) 하기 때문에 어쩔 수 없이 벌을 받아야 한다. 

허나, 벌을 받는 시간이 최소한이 되기를 바란다. 따라서 학생들은 최대한 머리를 짜내어 벌을 받는 시간을 최소화 하고자 한다.

정올의 강의실은 격자구조로 이루어져 있고, 각각의 칸마다 학생과 컴퓨터가 위치해 있다. 

컴퓨터는 한 칸에 하나만 존재할 수 있으며, 학생의 경우 한 칸에 두 명 이상의 학생이 동시에 존재할 수 있다. 

학생은 한 번에 상하좌우 한 칸으로 이동이 가능하며, 이동 할 때는 1의 시간이 걸린다. 

컴퓨터가 있는 자리에 앉을 수 있는 학생은 한명 밖에 없으며, 학생은 아무 컴퓨터에나 앉을 수 있다.

모든 학생들이 동시에 움직인다고 가정한다.

현재 정올의 강의실 정보가 들어 올 때, 모든 학생이 컴퓨터가 있는 자리에 도착하는 최소의 시간을 출력하는 프로그램을 작성하라.

 

 


입력

첫 번째 줄에는 강의실의 높이와 너비를 뜻하는 N, M(1≤N,M≤50)이 공백을 사이에 두고 입력된다.

그 다음 줄에는 N x M의 격자로 이루어진, 강의실의 정보가 입력이 된다. 한 개의 문자는 격자의 한 칸을 뜻하며, ‘.’은 비어있는 공간을 의미하고, 대문자 'C'는 컴퓨터가 있는 자리를 의미하며, 대문자 ‘S'는 개구쟁이 학생들을 의미한다. 대문자 ’X'는 갈수 없는 곳을 뜻한다. 컴퓨터의 대수와 학생의 명수는 같지 않을 수 있으며, 100이하이다.


출력

모든 학생들이 도착하였을 때의 가능한 최소의 시간을 출력한다. 불가능한 경우는 없다고 가정한다.


예제

3 4

C..S
C..S
C..S
3
로그인해야 코드를 작성할 수 있어요.