1.N N 의 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.
2.M M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이자고 한다.
1.배열안의 숫자들을 M * M 크기만큼 순환하여 가장 큰 수를 찾는다
2.이중 리스트를 활용하여 배열을 만든다
3. N = 5 이고 M = 2일때 i랑 j 는 0,1,2,3 까지만 순환하면 된다
정리하면
큰틀에서 N N 배열이 5이면 i = 0,1,2,3,4 j = 0,1,2,3,4
여기서 M M 크기인 2 * 2 크기 안의 숫자를 합치려고 하는데 i,j 가 4이상이 되어버리면 범위를 이탈하게 된다
그러므로 큰 범위는 i,j <= 3 이므로 N-M+1 크기만큼 순회해준다
그다음 2 * 2크기의 숫자를 하나하나 합해줄건데 이건 M의 크기만큼 바뀐다
새로운 반복문 for에 x,y 를 추가하고 x의 범위랑 y의 범위가 i,i+M 크기로 바꿔주고 합을 더한다
T = int(input())
for t in range(1,T+1):
n,m = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(n)]
answer = 0 #answer = 0으로 두고 합한 수가 answer 보다 크면 answer에 합한 수를 더해준다
for i in range(n-m+1):
for j in range(n-m+1):
asum = 0 # 합한수를 계속해서 초기화해준다
for x in range(i,i+m):
for y in range(j,j+m):
asum += arr[x][y]
if answer <= asum:
answer = asum
print(f'#{t} {answer}')