흑백 이미지에는 색이 없다. 그래서 흑백 이미지는 픽셀마다 밝기를 나타내는 수 하나만 기록한다. 이 문제에서 한 픽셀의 밝기는 0 이상 65535 이하의 정수다.
H×W 크기의 흑백 이미지 I는 픽셀 H×W개를 H행 W열로 늘어놓은 것이고, i행 j열에 있는 픽셀의 밝기를 I[i,j]로 쓴다. (1≤i≤H, 1≤j≤W)
경근이는 N×M 크기의 흑백 이미지 A와 R×C 크기의 흑백 이미지 B를 가지고 있다. N≥R이고 M≥C라서 A는 가로도 세로도 B보다 짧지 않다. 경근이는 A가 B를 표절했다고 보고, A에서 B와 비슷한 부분이 몇 군데인지 세려고 한다.
세는 방법은 이렇다. 먼저 흑백 이미지 A에서 픽셀 R×C개로 이루어진 직사각형을 하나 고른다. 이 직사각형은 좌측 상단 꼭짓점에 있는 픽셀의 위치 (x,y)로 정해진다. (1≤x≤N−R+1, 1≤y≤M−C+1)

크기가 고정되어 있으므로 좌측 상단 꼭짓점을 옮기면 직사각형 전체가 따라 움직인다. 예를 들어 위 흑백 이미지를 A라고 하고 4×6 크기의 직사각형을 좌측 상단 꼭짓점 (4,4)로 골랐다면, 이 직사각형의 우측 하단 꼭짓점은 (4+4−1,4+6−1)=(7,9)이다.
고른 직사각형이 이미지 B와 비슷한지는 다음 기준으로 판단한다.
실수 p와 q가 존재해서 1≤i≤R, 1≤j≤C인 모든 i, j에 대해 p×A[x+i−1,y+j−1]+q=B[i,j]를 만족하면, A에서 고른 직사각형과 이미지 B는 비슷하다.
이 기준을 A에 있는 R×C 크기의 직사각형 전부에 적용해서 B와 비슷한 직사각형의 개수를 세면 된다. 다시 말해 1≤x≤N−R+1, 1≤y≤M−C+1을 만족하는 모든 (x,y)에 위 기준을 적용한 뒤, 비슷하다고 판단된 (x,y) 쌍의 수를 세면 된다. 크기가 같은 두 직사각형이 다르다는 것은 좌측 상단 꼭짓점의 좌표가 서로 다르다는 뜻이고, 직사각형 안에 있는 픽셀의 밝기와는 관계가 없다.
경근이를 도와 A에서 B와 비슷한 부분이 몇 개인지 구하는 프로그램을 작성하시오.
첫째 줄에 흑백 이미지 A의 행의 수 N과 열의 수 M이 공백을 사이에 두고 주어진다. (1≤N,M≤1000)
다음 N개의 줄에 A의 픽셀 정보가 주어진다. 그중 i번째 줄에는 정수 M개 A[i,1],A[i,2],…,A[i,M]이 공백을 사이에 두고 주어진다. 즉 i번째 줄에서 j번째로 주어지는 정수가 A의 i행 j열에 있는 픽셀의 밝기다. (1≤i≤N)
그 다음 줄에 흑백 이미지 B의 행의 수 R과 열의 수 C가 공백을 사이에 두고 주어진다. (1≤R≤N, 1≤C≤M)
다음 R개의 줄에 B의 픽셀 정보가 주어진다. 그중 i번째 줄에는 정수 C개 B[i,1],B[i,2],…,B[i,C]가 공백을 사이에 두고 주어진다. (1≤i≤R)
주어지는 픽셀 밝기는 모두 0 이상 65535 이하의 정수다.
A에서 B와 비슷한 부분의 개수를 출력한다.
B의 픽셀 밝기가 모두 같으면 p=0으로 두고 q를 그 밝기로 잡을 수 있으므로, A의 직사각형이 전부 비슷하다고 판단된다.