격납고 화물 운반
시간 제한8초메모리 제한512 MB
막힌 칸과 빈 칸으로 이루어진 n x n 격자에서 두 빈 칸 사이를 이동할 수 있는 가장 큰 정사각형 상자의 크기를 묻는 q개의 질의에 답한다.
문제
비행기 조립 라인이 들어갈 새 격납고의 건설 도면을 검토한다. 격납고 바닥은 개의 행과 개의 열로 이루어진 정사각형 격자이고, 각 칸은 빈 칸이거나 막힌 칸이다. 행은 위에서 아래로 부터 까지, 열은 왼쪽에서 오른쪽으로 부터 까지 번호가 붙어 있다.
비행기 부품이 담긴 큰 화물은 바닥 위의 여러 위치 사이를 자유롭게 옮길 수 있어야 한다. 화물은 격자에 맞춰 놓인 정사각형이고 항상 한 칸을 중심으로 놓인다. 따라서 홀수 에 대해 크기가 인 화물은 연속한 개의 행과 연속한 개의 열이 겹치는 칸을 모두 덮는다. 화물은 한 번에 위, 아래, 왼쪽, 오른쪽 중 한 방향으로 한 칸씩 옮길 수 있고, 옮긴 뒤에도 격자 안에 완전히 들어와 있어야 하며 막힌 칸을 덮어서는 안 된다.
칸의 쌍 와 가 개 주어진다. 각 쌍마다 를 중심으로 놓았다가 바닥 위를 옮겨서 를 중심으로 놓을 수 있는 화물의 최대 크기를 구한다.
입력
첫째 줄에 격납고 바닥의 한 변 길이 ()이 주어진다.
다음 개의 줄에는 바닥의 한 행을 나타내는 길이 의 문자열이 주어진다. 문자 #은 막힌 칸, 문자 .은 빈 칸이다.
다음 줄에 질의의 개수 ()가 주어진다. 이어지는 개의 줄에는 각각 네 정수 , , , ()가 주어진다. 앞의 두 수는 칸 의 행 번호와 열 번호이고, 뒤의 두 수는 칸 의 행 번호와 열 번호이다. 와 는 항상 서로 다른 칸이고, 두 칸은 항상 빈 칸이다.
출력
개의 줄을 출력한다. 번째 줄에는 에서 까지 옮길 수 있는 화물의 최대 크기 를 정수 하나로 출력한다. 에서 까지 옮길 수 있는 화물이 없으면 는 이다. 크기가 인 화물은 한 칸만 덮으므로, 가 인 경우는 크기 인 화물조차 에서 로 옮길 수 없는 경우뿐이다.