지뢰 찾기
시간 제한1초메모리 제한128 MB
n×n 지뢰 배치와 현재 열린 칸 정보가 주어질 때, 열린 안전 칸에는 인접 지뢰 수를, 지뢰를 하나라도 열었다면 모든 지뢰를 별표로 출력하고 나머지는 점으로 출력한다.
문제
지뢰찾기는 크기의 격자에서 진행한다. 개의 지뢰가 서로 다른 칸에 하나씩 숨겨져 있다.
플레이어는 격자의 칸을 하나씩 골라 연다.
- 지뢰가 있는 칸을 열면 플레이어는 진다.
- 지뢰가 없는 칸을 열면, 그 칸에는 상하좌우와 대각선으로 인접한 8개의 칸 가운데 지뢰가 놓인 칸의 개수(0 이상 8 이하)가 나타난다.
플레이어가 지뢰가 있는 개의 칸만 남기고 나머지 안전한 칸을 모두 열면 이긴다. 남은 개의 칸은 반드시 모두 지뢰이다.
당신이 할 일은 일부만 진행된 게임의 정보를 읽어, 그에 해당하는 격자의 현재 상태를 출력하는 것이다.
입력
첫째 줄에 격자의 크기를 나타내는 양의 정수 이 주어진다 ().
다음 개의 줄에는 지뢰의 배치가 주어진다. 각 줄은 한 행을 나타내는 개의 문자로 이루어지며, 온점(.)은 지뢰가 없는 칸, 별표(*)는 지뢰가 있는 칸이다.
이어지는 개의 줄에는 각 칸이 열렸는지를 나타내는, 길이가 인 문자열이 주어진다. 영소문자 x는 이미 열린 칸, 온점(.)은 아직 열리지 않은 칸이다.
출력
격자의 현재 상태를 개의 줄로 출력한다.
- 지뢰가 없으면서 열린 칸에는 인접한 지뢰의 개수(0 이상 8 이하)를 출력한다.
- 만약 지뢰가 있는 칸이 하나라도 열렸다면, 지뢰가 있는 모든 칸을 별표(
*)로 출력한다. - 그 외의 모든 칸은 온점(
.)으로 출력한다.