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

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

노르딕 캠핑

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

요약
바위 셀이 막힌 격자에서 주어진 물 위치를 포함하는 가장 큰 사용 가능한 정사각형 영역의 넓이를 각 질의마다 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 이분 탐색, 누적 합, 배열
정답자
아직 제출이 없습니다

문제

북유럽 고지대에서 캠핑할 때는 믿을 수 있는 식수원을 확보하는 일이 생사를 가를 수 있다. 북유럽 캠핑객들은 전통적으로 텐트 안에서 언제든 물을 길어 올 수 있도록 식수원을 덮는 위치에 텐트를 친다. 북유럽 사람들의 또 다른 독특한 전통은 텐트인데, 정사각형 텐트만 사용한다.

북유럽 고지대의 캠핑장은 거칠고 바위가 많아 울퉁불퉁할 수 있다. 욘은 새로운 캠핑장을 조성하면서 캠핑장에서 사용할 수 있는 모든 지점을 측량했다. 캠핑장을 NN행 MM열 격자로 모델링하면, 욘은 거칠어서 사용할 수 없는 셀의 목록을 제공한다. 이제 욘은 매끄럽고 사용 가능한 셀만을 써서 주어진 식수원을 덮을 수 있는 가장 큰 텐트가 무엇인지 알아내려 한다.

각 식수원에 대해, 그 식수원을 덮도록 칠 수 있는 가장 큰 정사각형 텐트의 크기를 구하라.

그림 1: 식수원 (3,2)(3, 2)를 덮는 가장 큰 정사각형 텐트의 영역. 이 텐트는 식수원 (5,4)(5, 4)를 덮는 가장 큰 정사각형 텐트이기도 하다.

입력

입력의 첫 줄에는 두 정수 NN과 MM이 공백으로 구분되어 주어진다 (1≤N1 \le N, 1≤M1 \le M). 이어서 NN개의 줄이 주어지며, 각 줄은 MM개의 문자로 이루어져 캠핑장 지도를 나타낸다. 각 문자는 . 또는 #이며, .는 사용 가능한 셀을, #는 바위투성이의 사용 불가능한 셀을 나타낸다.

그 다음 줄에는 욘이 고려 중인 식수원의 개수인 정수 QQ가 주어진다. 이어지는 QQ개의 각 줄에는 두 정수 xx와 yy가 주어지며 (1≤x≤N1 \le x \le N, 1≤y≤M1 \le y \le M), 격자의 xx행 yy열에 식수원이 있음을 나타낸다.

출력

욘이 고려 중인 각 식수원에 대해, 입력에 주어진 순서대로 매끄럽고 사용 가능한 셀만으로 이루어져 그 식수원을 덮는 가장 큰 정사각형 텐트의 바닥 면적을 출력한다. 식수원이 바위 셀에 있으면 칠 수 있는 텐트가 없으므로 00을 출력한다.

텐트는 셀을 비스듬히 걸쳐서 칠 수 없다. 각 셀을 완전히 덮거나 전혀 겹치지 않아야 한다.

예제2

  1. 예제 1

    입력
    3 3
    #..
    ...
    .##
    2
    1 3
    2 1
    
    예상 출력
    4
    1
    
  2. 예제 2

    입력
    5 5
    #...#
    ..#..
    .....
    #...#
    #....
    5
    3 2
    2 5
    5 4
    4 5
    1 3
    
    예상 출력
    9
    4
    9
    0
    1