글자로 칠하기
시간 제한2초메모리 제한512 MB
각 질의 부분 직사각형에서 같은 색이 상하좌우로 이어진 덩어리의 개수를 구합니다. 덩어리마다 붓질이 하나씩 필요합니다.
문제
Bessie는 최근 그림 도구 세트를 받았다. 캔버스는 크기의 칸으로 이루어진 직사각형이다. 행은 위에서 아래로 번, 열은 왼쪽에서 오른쪽으로 번까지 번호가 매겨진다 (). 칸을 칠하면 'A'부터 'Z'까지 대문자 하나가 그 칸의 색이 된다. 처음에는 모든 칸이 칠해지지 않은 상태이며, 한 칸은 두 번 이상 칠할 수 없다.
Bessie는 칸마다 원하는 색을 정해 두었다. 같은 색으로 칠할 칸들이 연결 성분을 이루면, 즉 집합 안의 어떤 두 칸이든 인접한 칸들을 따라 서로 오갈 수 있으면 그 집합을 한 번의 붓질로 칠할 수 있다. 두 칸은 변을 공유할 때 인접한다.
예를 들어 아래 캔버스는 네 번의 붓질로 칠할 수 있다.
AAB
BBA
BBB
... ..B AAB AAB AAB
... -> ... -> ... -> BB. -> BBA
... ... ... BBB BBB
네 번보다 적은 붓질로는 이 결과를 만들 수 없다.
Bessie는 전위 예술가이므로 캔버스 전체가 아니라 일부 부분 직사각형만 칠한다. 후보 직사각형은 개()이며, 각 후보는 정수 네 개 , , , 로 주어진다. 이는 행이 부터 까지, 열이 부터 까지(양 끝 포함)인 모든 칸으로 이루어진 부분 직사각형을 뜻한다.
각 후보에 대해, 부분 직사각형 안의 모든 칸을 원하는 색으로 칠하고 그 밖의 칸은 칠하지 않은 상태로 두는 데 필요한 붓질의 최소 횟수를 구하라. Bessie는 실제로 칠하지 않으므로 후보들의 답은 서로 독립이다.
입력
첫 줄에 , , 가 주어진다.
이어지는 개의 줄에는 각각 캔버스 한 행의 원하는 색을 나타내는 길이 의 대문자 문자열이 주어진다.
이어지는 개의 줄에는 각각 후보 부분 직사각형을 나타내는 공백으로 구분된 정수 네 개 , , , 가 주어진다(, ).
출력
개의 후보마다 답을 한 줄에 하나씩 출력한다.