미노타우르스 미궁
시간 제한2초메모리 제한128 MB
두 모서리 칸을 피해 빈 칸으로 이루어진 가장 작은 정사각형을 놓아 입구와 은신처 사이의 모든 경로를 끊는 문제다.
문제
미궁은 크기가 같은 정사각형 칸으로 나누어진 직사각형 격자이다. 각 칸은 비어 있거나(.) 막혀 있다(#). 괴물은 상하좌우로 맞닿은 두 빈 칸 사이로만 이동할 수 있고, 막힌 칸으로는 지나갈 수 없다.
미궁의 입구는 왼쪽 위 칸이고, 괴물의 둥지는 대각선 반대편인 오른쪽 아래 칸에 있다. 두 칸은 항상 비어 있으며, 처음에는 입구에서 둥지까지 빈 칸만 밟고 갈 수 있는 경로가 존재한다.
당신은 정사각형 모양의 장애물 하나를 미궁에 설치해 괴물을 가두려 한다. 장애물이 덮는 칸은 모두 비어 있어야 하고, 입구 칸이나 둥지 칸은 덮을 수 없다. 장애물을 설치한 뒤 입구에서 둥지로 가는 경로가 완전히 사라지면 괴물을 가둔 것이다.
괴물을 가둘 수 있는 가장 작은 정사각형 장애물의 크기와 위치를 구하라.
입력
첫째 줄에 미궁의 너비 와 높이 가 공백으로 구분되어 주어진다. ()
다음 개의 줄에는 각각 개의 문자로 이루어진 미궁의 지도가 주어진다. 빈 칸은 ., 막힌 칸은 #로 나타낸다.
입구는 왼쪽 위 칸 이고, 둥지는 오른쪽 아래 칸 이다. 두 칸은 항상 비어 있으며, 입구에서 둥지로 가는 경로가 항상 존재한다.
출력
세 정수 , , 를 공백으로 구분하여 출력한다. 은 괴물을 가두는(입구에서 둥지로 가는 경로를 없애는) 가장 작은 정사각형 장애물의 한 변의 길이이고, 는 그 장애물의 왼쪽 위 칸의 좌표(열 , 행 )이다. 장애물이 덮는 모든 칸은 비어 있어야 하며, 입구 칸과 둥지 칸을 덮어서는 안 된다.
가장 작은 장애물의 위치가 여러 개라면, 왼쪽 위 칸의 열 가 가장 작은 것을 출력하고, 그런 것이 여러 개면 그중 행 가 가장 작은 것을 출력한다.
정사각형 장애물 하나로는 괴물을 가둘 수 없다면 Impossible을 출력한다.