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

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

미노타우르스 미궁

시간 제한2초메모리 제한128 MB

요약
두 모서리 칸을 피해 빈 칸으로 이루어진 가장 작은 정사각형을 놓아 입구와 은신처 사이의 모든 경로를 끊는 문제다.
난이도

보통10점 중 7점

유형
그래프, BFS, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

미궁은 크기가 같은 정사각형 칸으로 나누어진 직사각형 격자이다. 각 칸은 비어 있거나(.) 막혀 있다(#). 괴물은 상하좌우로 맞닿은 두 빈 칸 사이로만 이동할 수 있고, 막힌 칸으로는 지나갈 수 없다.

미궁의 입구는 왼쪽 위 칸이고, 괴물의 둥지는 대각선 반대편인 오른쪽 아래 칸에 있다. 두 칸은 항상 비어 있으며, 처음에는 입구에서 둥지까지 빈 칸만 밟고 갈 수 있는 경로가 존재한다.

당신은 정사각형 모양의 장애물 하나를 미궁에 설치해 괴물을 가두려 한다. 장애물이 덮는 칸은 모두 비어 있어야 하고, 입구 칸이나 둥지 칸은 덮을 수 없다. 장애물을 설치한 뒤 입구에서 둥지로 가는 경로가 완전히 사라지면 괴물을 가둔 것이다.

괴물을 가둘 수 있는 가장 작은 정사각형 장애물의 크기와 위치를 구하라.

입력

첫째 줄에 미궁의 너비 ww와 높이 hh가 공백으로 구분되어 주어진다. (2≤w,h≤15002 \le w, h \le 1500)

다음 hh개의 줄에는 각각 ww개의 문자로 이루어진 미궁의 지도가 주어진다. 빈 칸은 ., 막힌 칸은 #로 나타낸다.

입구는 왼쪽 위 칸 (1,1)(1, 1)이고, 둥지는 오른쪽 아래 칸 (w,h)(w, h)이다. 두 칸은 항상 비어 있으며, 입구에서 둥지로 가는 경로가 항상 존재한다.

출력

세 정수 ll, xx, yy를 공백으로 구분하여 출력한다. ll은 괴물을 가두는(입구에서 둥지로 가는 경로를 없애는) 가장 작은 정사각형 장애물의 한 변의 길이이고, (x,y)(x, y)는 그 장애물의 왼쪽 위 칸의 좌표(열 xx, 행 yy)이다. 장애물이 덮는 모든 칸은 비어 있어야 하며, 입구 칸과 둥지 칸을 덮어서는 안 된다.

가장 작은 장애물의 위치가 여러 개라면, 왼쪽 위 칸의 열 xx가 가장 작은 것을 출력하고, 그런 것이 여러 개면 그중 행 yy가 가장 작은 것을 출력한다.

정사각형 장애물 하나로는 괴물을 가둘 수 없다면 Impossible을 출력한다.

예제2

  1. 예제 1

    입력
    11 6
    ......#####
    .#.#...#..#
    .#.#.......
    .......###.
    #####.###..
    #####......
    
    예상 출력
    2 6 3
    
  2. 예제 2

    입력
    3 3
    ...
    .#.
    ...
    
    예상 출력
    Impossible