2차원 최댓값 필터
면접 대비시간 제한1초메모리 제한128 MB
R행 C열 격자의 각 칸을 중심으로 경계에서 잘린 직사각형 창 안의 최댓값을 출력합니다.
문제
어떤 전기공학자가 2차원 신호를 거르는 효율적인 알고리즘을 만들려고 한다. 신호는 행 열의 블록으로 디지털화되어 있고, 블록마다 정수 값이 하나씩 들어 있다.
필터의 창은 직사각형이고 크기는 행 열이다. 여기서 과 은 0 이상의 정수다. 이 창이 입력 신호 전체를 훑고 지나가면서 다음 규칙에 따라 또 하나의 2차원 신호를 만든다.
- 창의 중심이 입력 신호의 행 열에 있으면, 창은 출력 신호의 행 열에 값 하나를 만든다.
- 만드는 값은 창이 덮은 영역 안에 있는 입력 값 중 최댓값이다.
- 창에서 입력 신호 밖으로 나간 부분은 계산에 넣지 않는다. 입력 신호 안에 들어온 부분만 본다.
행 번호와 열 번호는 모두 1부터 센다. 예를 들어 , 이면 창의 크기는 3행 5열이다. 창의 중심이 4행 5열에 있으면 창은 3행 3열부터 5행 7열까지를 덮고, 그 영역의 최댓값이 출력 신호의 4행 5열 값이 된다. 창의 중심이 1행 2열에 있으면 창은 -1행 -1열부터 2행 4열까지 걸치지만 신호 밖은 무시하므로, 실제로 보는 값은 1행 1열부터 2행 4열까지다.
입력 신호가 주어졌을 때 이 2차원 최댓값 필터가 만드는 출력 신호를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 입력 신호의 행 수 과 열 수 가 공백으로 구분되어 주어진다. (, )
둘째 줄에 과 이 공백으로 구분되어 주어진다. (, ) 창의 크기는 과 으로 정해지며 행 열이다.
셋째 줄부터 개의 줄에 입력 신호의 값이 주어진다. 각 줄에는 그 행의 값 개가 왼쪽부터 순서대로 공백으로 구분되어 주어진다. 각 값은 0 이상 10000 이하의 정수다.
출력
개의 줄에 출력 신호를 출력한다. 각 줄에는 그 행의 출력 값 개를 공백으로 구분해 출력한다.