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

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

정렬된 행렬의 값 개수 세기

면접 대비

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

요약
행과 열이 모두 오름차순으로 정렬된 행렬에서 각 질의 구간 [X, Y]에 들어가는 원소 개수를 셉니다.
난이도

보통10점 중 5점

유형
이분 탐색, 행렬
정답자
아직 제출이 없습니다

문제

자연수로 이루어진 행렬 AA가 하나 있다. 이 행렬은 모든 행과 모든 열이 오름차순으로 정렬되어 있다. 즉 모든 ii, jj에 대해 A[i][j]≥A[i−1][j]A[i][j] \ge A[i-1][j]이고 A[i][j]≥A[i][j−1]A[i][j] \ge A[i][j-1]이다.

여기에 Y≥XY \ge X를 만족하는 정수 쌍 (X,Y)(X, Y)가 하나 이상 주어진다. 각 쌍마다 행렬의 값 중에서 XX 이상 YY 이하인 것이 몇 개인지 세어라.

입력

첫째 줄에 행의 수 NN과 열의 수 MM이 주어진다. (1≤N,M≤100001 \le N, M \le 10000)

이어지는 NN개 줄에는 행렬의 값이 행 단위로 주어진다. 각 줄에는 정수 MM개가 공백으로 구분되어 있다.

그 뒤에는 질의 쌍 (X,Y)(X, Y)가 이어진다. 한 쌍은 정수 두 개이고, 입력이 끝날 때까지 계속 읽으면 된다. 쌍은 최소 1개, 최대 100개이며, 마지막에 잘린 쌍이 남는 경우는 없다.

행렬의 값은 모두 자연수이고, 이 값과 XX, YY는 전부 32비트 부호 있는 정수 범위에 들어간다. 항상 X≤YX \le Y이다. 숫자 사이에는 공백과 줄바꿈이 자유롭게 섞여 있을 수 있다.

출력

질의 쌍마다 행렬의 값 중 XX 이상 YY 이하인 것의 개수를 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    2 4
    1 5 10 10
    2 10 20 99
    
    10 99
    2 9
    100 1000
    10 10
    
    예상 출력
    5
    2
    0
    3