더워!
면접 대비시간 제한1초메모리 제한1024 MB
격자에서 실외에서는 불쾌지수가 오르고 실내에서는 내려갈 때, 불쾌지수가 100에 이르지 않게 집 S에서 회의 장소 E까지 가는 최소 시간을 구합니다.
문제
한여름 날씨가 너무 더워서 민규는 외출은커녕 집에서 에어컨에 의지해 지내고 있다. 오늘은 약속이 있어 어쩔 수 없이 집 밖으로 나가 약속 장소로 가야 한다. 그런데 시원한 집에서 쉬다 보니 어느새 약속 시간에 늦고 말았다. 빨리 집을 나서야 한다!
밖은 행 열의 격자이다. 격자의 각 칸은 집, 약속 장소, 건물, 벽, 길 중 하나이다. 집과 건물은 실내이고, 길, 벽, 약속 장소는 실외이다.
밖이 너무 더워서 실외에 있으면 불쾌함 가 계속 증가한다. 그러나 이동 경로에 있는 실내는 매우 시원해서, 실내를 지나가거나 실내에서 쉬는 동안에는 불쾌함이 줄어든다.
처음에 민규의 불쾌함은 이다. 불쾌함이 이 되면 민규는 견디지 못하고 쓰러진다.
민규는 집에서 출발해 다음 순서로 행동한다. 1번 행동은 이동 여부와 상관없이 의 시간이 걸리고, 2번과 3번 행동에 드는 시간은 무시할 수 있을 만큼 짧다.
- 격자판 안에서 상하좌우로 인접한 칸 중 벽이 아닌 칸으로 이동하거나, 이동하지 않고 가만히 있는다.
- 현재 있는 칸에 따라 불쾌함이 증가하거나 감소한다.
- 현재 칸이 실내라면 불쾌함이 까지 줄어든다.
- 현재 칸이 실외라면 불쾌함이 까지 늘어난다.
- 약속 장소에 도달하거나 불쾌함이 이 되면 행동을 멈춘다. 그렇지 않으면 1번으로 돌아간다.
민규가 쓰러지지 않고 약속 장소에 최대한 빨리 도달할 수 있도록 이동 경로를 계산하는 프로그램을 작성하자. 단, 약속 장소로 이동했는데 불쾌함이 이 되면 민규는 쓰러진 것이므로 약속 장소에 도달하지 못한 것으로 본다.
입력
첫 번째 줄에 격자의 크기를 나타내는 정수 , 이 공백으로 구분되어 주어진다.
두 번째 줄에는 실내에서 줄어드는 불쾌함 와 실외에서 늘어나는 불쾌함 가 공백으로 구분되어 주어진다.
세 번째 줄부터 번째 줄까지 격자의 상태를 나타내는 길이 의 문자열이 주어진다. 번째 줄의 번째 문자는 행 열 칸의 대상을 나타낸다. 문자가 S이면 민규의 집, E이면 약속 장소, H이면 건물, #이면 벽, .이면 길이다. S와 E는 각각 하나씩 주어진다.
출력
민규가 쓰러지지 않고 약속 장소에 도달할 수 있는 최소 시간을 출력한다. 그런 방법이 없다면 -1을 출력한다.
제한
- 와 입력으로 주어지는 모든 수는 정수이다.