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

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

흑백 이미지 찾기

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

요약
A 안의 모든 R행 C열 영역 중 실수 p와 q를 써서 p 곱하기 A 더하기 q 형태로 B와 일치하는 영역의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
문자열 매칭, 행렬, 수학
정답자
아직 제출이 없습니다

문제

흑백 이미지에는 색이 없다. 그래서 흑백 이미지는 픽셀마다 밝기를 나타내는 수 하나만 기록한다. 이 문제에서 한 픽셀의 밝기는 00 이상 6553565535 이하의 정수다.

H×WH \times W 크기의 흑백 이미지 II는 픽셀 H×WH \times W개를 HH행 WW열로 늘어놓은 것이고, ii행 jj열에 있는 픽셀의 밝기를 I[i,j]I[i, j]로 쓴다. (1≤i≤H1 \le i \le H, 1≤j≤W1 \le j \le W)

경근이는 N×MN \times M 크기의 흑백 이미지 AA와 R×CR \times C 크기의 흑백 이미지 BB를 가지고 있다. N≥RN \ge R이고 M≥CM \ge C라서 AA는 가로도 세로도 BB보다 짧지 않다. 경근이는 AA가 BB를 표절했다고 보고, AA에서 BB와 비슷한 부분이 몇 군데인지 세려고 한다.

세는 방법은 이렇다. 먼저 흑백 이미지 AA에서 픽셀 R×CR \times C개로 이루어진 직사각형을 하나 고른다. 이 직사각형은 좌측 상단 꼭짓점에 있는 픽셀의 위치 (x,y)(x, y)로 정해진다. (1≤x≤N−R+11 \le x \le N - R + 1, 1≤y≤M−C+11 \le y \le M - C + 1)

크기가 고정되어 있으므로 좌측 상단 꼭짓점을 옮기면 직사각형 전체가 따라 움직인다. 예를 들어 위 흑백 이미지를 AA라고 하고 4×64 \times 6 크기의 직사각형을 좌측 상단 꼭짓점 (4,4)(4, 4)로 골랐다면, 이 직사각형의 우측 하단 꼭짓점은 (4+4−1,4+6−1)=(7,9)(4 + 4 - 1, 4 + 6 - 1) = (7, 9)이다.

고른 직사각형이 이미지 BB와 비슷한지는 다음 기준으로 판단한다.

실수 pp와 qq가 존재해서 1≤i≤R1 \le i \le R, 1≤j≤C1 \le j \le C인 모든 ii, jj에 대해 p×A[x+i−1,y+j−1]+q=B[i,j]p \times A[x + i - 1, y + j - 1] + q = B[i, j]를 만족하면, AA에서 고른 직사각형과 이미지 BB는 비슷하다.

이 기준을 AA에 있는 R×CR \times C 크기의 직사각형 전부에 적용해서 BB와 비슷한 직사각형의 개수를 세면 된다. 다시 말해 1≤x≤N−R+11 \le x \le N - R + 1, 1≤y≤M−C+11 \le y \le M - C + 1을 만족하는 모든 (x,y)(x, y)에 위 기준을 적용한 뒤, 비슷하다고 판단된 (x,y)(x, y) 쌍의 수를 세면 된다. 크기가 같은 두 직사각형이 다르다는 것은 좌측 상단 꼭짓점의 좌표가 서로 다르다는 뜻이고, 직사각형 안에 있는 픽셀의 밝기와는 관계가 없다.

경근이를 도와 AA에서 BB와 비슷한 부분이 몇 개인지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 흑백 이미지 AA의 행의 수 NN과 열의 수 MM이 공백을 사이에 두고 주어진다. (1≤N,M≤10001 \le N, M \le 1000)

다음 NN개의 줄에 AA의 픽셀 정보가 주어진다. 그중 ii번째 줄에는 정수 MM개 A[i,1],A[i,2],…,A[i,M]A[i, 1], A[i, 2], \dots, A[i, M]이 공백을 사이에 두고 주어진다. 즉 ii번째 줄에서 jj번째로 주어지는 정수가 AA의 ii행 jj열에 있는 픽셀의 밝기다. (1≤i≤N1 \le i \le N)

그 다음 줄에 흑백 이미지 BB의 행의 수 RR과 열의 수 CC가 공백을 사이에 두고 주어진다. (1≤R≤N1 \le R \le N, 1≤C≤M1 \le C \le M)

다음 RR개의 줄에 BB의 픽셀 정보가 주어진다. 그중 ii번째 줄에는 정수 CC개 B[i,1],B[i,2],…,B[i,C]B[i, 1], B[i, 2], \dots, B[i, C]가 공백을 사이에 두고 주어진다. (1≤i≤R1 \le i \le R)

주어지는 픽셀 밝기는 모두 00 이상 6553565535 이하의 정수다.

출력

AA에서 BB와 비슷한 부분의 개수를 출력한다.

힌트

BB의 픽셀 밝기가 모두 같으면 p=0p = 0으로 두고 qq를 그 밝기로 잡을 수 있으므로, AA의 직사각형이 전부 비슷하다고 판단된다.

예제8

  1. 예제 1

    입력
    4 4
    1 2 3 4
    2 1 4 3
    3 4 1 2
    4 3 2 1
    2 2
    5 6
    6 5
    
    예상 출력
    5
    
  2. 예제 2

    입력
    5 5
    9 2 5 4 3
    6 8 2 0 2
    4 3 6 4 3
    7 2 3 4 8
    8 2 4 6 7
    3 3
    77 77 77
    77 77 77
    77 77 77
    
    예상 출력
    9
    
  3. 예제 3

    입력
    1 1
    42
    1 1
    7
    
    예상 출력
    1
    
  4. 예제 4

    입력
    3 3
    0 1 2
    3 4 5
    6 7 8
    1 1
    65535
    
    예상 출력
    9
    
  5. 예제 5

    입력
    3 4
    100 100 100 100
    100 100 100 100
    100 100 100 100
    2 2
    1 2
    3 4
    
    예상 출력
    0
    
  6. 예제 6

    입력
    3 4
    2 3 4 5
    5 4 3 2
    1 3 5 7
    2 2
    5 4
    2 3
    
    예상 출력
    1
    
  7. 예제 7

    입력
    1 7
    0 3 6 9 12 15 18
    1 2
    0 1
    
    예상 출력
    6
    
  8. 예제 8

    입력
    2 3
    0 65535 0
    65535 0 65535
    2 2
    65535 0
    0 65535
    
    예상 출력
    2