행성 탐사

면접 대비

시간 제한1초메모리 제한256 MB

요약
정글, 바다, 얼음으로 이루어진 격자가 주어질 때, 여러 직사각형 질의에 대해 각 지형의 칸 수를 세어 출력한다.
난이도

보통10점 중 4점

유형
누적 합, 배열, 구현, 행렬
정답자
아직 제출이 없습니다

문제

탐사대가 우주선을 타고 인간이 거주할 수 있는 행성을 찾다가, 마침내 거주 가능한 행성을 발견했다. 이 행성은 정글, 바다, 얼음으로 뒤덮여 있다. 탐사대는 거주 가능한 구역의 지도를 만들어 지구로 보냈다.

지도는 가로 NNcm, 세로 MMcm인 직사각형이며, 한 변이 1cm인 정사각형 칸으로 나뉜다. 각 칸의 지형은 알파벳으로 표시되는데, 정글은 J, 바다는 O, 얼음은 I이다.

지구에서는 조사할 영역 KK개를 정했다. 각 영역 안에 정글, 바다, 얼음이 각각 몇 칸씩 있는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 지도의 크기 MM과 NN이 주어진다. (1≤M,N≤10001 \le M, N \le 1000)

둘째 줄에 조사할 영역의 개수 KK가 주어진다. (1≤K≤1000001 \le K \le 100000)

셋째 줄부터 MM개의 줄에 걸쳐 지도가 주어진다. 각 줄은 J, O, I로 이루어진 길이 NN의 문자열이다.

이어지는 KK개의 줄에는 조사 영역의 정보가 네 정수 aa, bb, cc, dd로 주어진다. 각 영역은 직사각형이며, 왼쪽 위 칸이 (a,b)(a, b), 오른쪽 아래 칸이 (c,d)(c, d)이다. 여기서 첫 번째 값은 위에서부터 센 행 번호, 두 번째 값은 왼쪽에서부터 센 열 번호이다. (1≤a≤c≤M1 \le a \le c \le M, 1≤b≤d≤N1 \le b \le d \le N)

출력

각 조사 영역마다 그 안에 있는 정글, 바다, 얼음 칸의 수를 공백으로 구분하여 한 줄에 하나씩 출력한다. 즉, 각 줄에 J, O, I의 개수를 순서대로 출력한다.

힌트

아래 그림은 한 조사 영역 안에서 지형을 세는 예를 보여 준다. 이 영역에는 정글(J)이 3개, 바다(O)가 5개, 얼음(I)이 2개 있다.

예제1

  1. 예제 1

    입력
    4 7
    4
    JIOJOIJ
    IOJOIJO
    JOIJOOI
    OOJJIJO
    3 5 4 7
    2 2 3 6
    2 2 2 2
    1 1 4 7
    
    예상 출력
    1 3 2
    3 5 2
    0 1 0
    10 11 7