gMatrix (Small)
면접 대비시간 제한5초메모리 제한512 MB
주어진 식으로 행렬을 만들고 한 변이 K인 모든 연속 부분행렬의 최댓값을 합합니다.
문제
크기가 인 정사각 행렬 이 있다. 의 원소는 모두 음이 아닌 정수이다. 안에 들어 있는 모든 부분 행렬마다 그 안의 최댓값을 하나씩 구한 다음, 구한 값을 전부 더한 결과를 구하려고 한다. 여기서 부분 행렬은 연속한 개의 행과 연속한 개의 열로 이루어진다. 의 같은 칸이 여러 부분 행렬에서 동시에 최댓값이 될 수 있는데, 그런 칸은 최댓값이 된 횟수만큼 중복해서 더한다.
행렬을 그대로 입력받는 대신 길이가 인 두 배열 와 , 그리고 두 정수 와 가 주어진다. 번째 행, 번째 열의 원소는 이다. 이때 와 는 모두 이상 이하이다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫째 줄에는 네 정수 , , , 가 공백으로 구분되어 주어진다. 둘째 줄에는 배열 의 원소 개가, 셋째 줄에는 배열 의 원소 개가 공백으로 구분되어 주어진다.
출력
각 테스트 케이스마다 한 줄에 Case #x: y 형식으로 출력한다. 는 부터 시작하는 테스트 케이스 번호이고, 는 모든 부분 행렬의 최댓값을 더한 값이다.
제한
힌트
첫 번째 테스트 데이터의 세 번째 테스트 케이스는 , , , , , 이므로 행렬은 다음과 같다.
11 11 24
13 13 26
14 14 27
부분 행렬은 네 개이고 각각의 최댓값은 , , , 이므로 답은 이다.