아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

포위

시간 제한1초메모리 제한1024 MB

요약
미르코는 격자판에서 말을 움직여 슬라브코의 말을 벽으로 가두고, 필요한 벽 칸 수의 최솟값을 구합니다.
난이도

어려움10점 중 8점

유형
BFS, 그래프, 구현
정답자
아직 제출이 없습니다

문제

미르코와 슬라브코는 N×MN \times M 크기의 판에서 새로운 게임을 한다. 판에는 미르코의 말과 슬라브코의 보이지 않는 말, 두 개의 말이 있다. 미르코의 말은 처음에 왼쪽 위 모서리에 있다. 미르코는 슬라브코의 말이 처음 어디에 있는지 모르지만, 가능한 모든 시작 위치는 안다.

먼저 두는 사람은 미르코이다. 미르코는 한 번의 차례에 최대 10걸음까지 움직일 수 있다. 한 걸음은 말을 인접한 칸 하나로 옮기는 것이다. 두 칸이 변을 공유하면 인접한 칸이다. 미르코 다음에는 슬라브코가 말을 한 걸음 움직이거나 제자리에 머문다. 슬라브코의 말은 보이지 않으므로 미르코는 게임 중에 그 위치와 슬라브코의 움직임을 알 수 없다. 두 말은 같은 칸에 있을 수 있다. 미르코는 이미 방문한 칸에 게임 전체의 마지막 걸음에서만 들어갈 수 있다. 반면 슬라브코는 같은 칸을 원하는 만큼 몇 번이든 방문할 수 있다. 한 명이 이길 때까지 둘은 번갈아 둔다.

슬라브코는 말을 판의 첫 번째 또는 마지막 행, 또는 첫 번째 또는 마지막 열에 놓으면 이긴다. 미르코는 말로 슬라브코의 말 주변 영역을 둘러싸면 이긴다. 미르코가 마지막 걸음에서 이미 방문한 칸에 다시 서면, 그 칸을 처음 방문한 때부터 두 번째 방문할 때까지 지나간 칸마다 벽이 생기며, 두 번 방문한 칸도 포함된다. 슬라브코의 말이 벽 안쪽에 엄격히 있으면 둘러싸인 것이다.

입력

첫 줄에 판의 행 수와 열 수를 나타내는 자연수 NN과 MM이 주어진다 (1≤N≤2001 \le N \le 200, 1≤M≤2001 \le M \le 200).

다음 NN개 줄에는 판의 모양을 나타내는 MM개의 문자가 주어진다. '.'은 빈 칸이고, 소문자 'x'는 슬라브코의 말이 있을 수 있는 시작 위치이다.

출력

슬라브코의 시작 위치와 움직임에 관계없이 미르코가 반드시 슬라브코의 말을 둘러쌀 수 있도록 세워야 하는 벽 칸의 최솟값을 출력한다. 반드시 둘러쌀 수 없다면 -1을 출력한다.

힌트

첫 번째 예제 설명: 미르코는 첫 번째 차례에 아래 그림의 숫자 순서대로 칸을 방문한다.

01...
.234.
.9x5.
.876.
.....

첫 차례의 10번째 걸음에서 미르코는 2번 칸으로 다시 선다. 2번 칸에 다시 서면 2번부터 9번까지 8개 칸에 벽이 생긴다.

두 번째 예제 설명: 미르코는 슬라브코의 말을 둘러쌀 수 없다. 슬라브코가 말을 맨 아래에서 두 번째 행의 시작 위치에 두면, 미르코의 10걸음 뒤에 슬라브코가 말을 마지막 행으로 옮겨 이긴다.

세 번째 예제 설명: 미르코가 벽 30개로 슬라브코의 말을 둘러싸는 방법 중 하나는 아래 그림의 순서대로 움직이는 것이다.

 0  1  2  3  4  .  .  .
29  .  .  .  5  6  7  .
28  .  .  .  .  .  8  9
27  .  .  x  .  .  . 10
26  .  .  .  x  .  . 11
25  .  .  x  .  .  . 12
24  .  .  .  .  .  . 13
23 22  .  .  .  .  . 14
 . 21 20 19 18 17 16 15

미르코는 30번째 걸음에서 0번 칸으로 돌아온다. 이 30칸을 지나는 데 미르코는 3번의 차례가 필요하므로, 벽이 완성되기 전에 슬라브코는 2번 움직일 수 있다. 슬라브코는 그 2번의 움직임 동안 반드시 둘러싸인 영역 안에 있다.

예제3

  1. 예제 1

    입력
    5 5
    .....
    .....
    ..x..
    .....
    .....
    
    예상 출력
    8
    
  2. 예제 2

    입력
    8 8
    ........
    ........
    ...x....
    ........
    ..x.....
    ........
    ......x.
    ........
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    9 8
    ........
    ........
    ........
    ...x....
    ....x...
    ...x....
    ........
    ........
    ........
    
    예상 출력
    30