각 길이가 다른 두 개의 숫자열의 서로 마주보는 숫자들을 곱한 뒤 더했을 때 최댓값을 구하는 문제이다.
#testcase
T = int(input())
for i in range(0, T) : 
    #각 숫자열의 길이
    NM = input()
    A = input().split() 
    A = list(map(int, A)) # 배열의 모든 값을 정수형(int)로 변환한 list를 만듦
    B = input().split() 
    B = list(map(int, B))
    # B열의 길이가 더 짧을 경우, A와 B swab (이렇게 하면 항상 B열이 더 긺)
    if len(A) > len(B) :
        B, A = A, B
    arr = []
    for k in range(len(B)-len(A)+1) : 
        sum = 0
        for r in range(len(A)) : 
            sum += A[r] * B[r+k]
        arr.append(sum)  # 각 시도들을 배열에 넣고 그 중에서 제일 큰 값을 출력 
    print(f'#{i+1} {max(arr)}')단, 더 긴 쪽의 양끝을 벗어나서는 안 된다.
 e.g.) len(A) = 5, len(B) = 3 --- > try_no = 3arr = [A1*B1 + A2*B2 + A3*B3, A1*B2 + A2*B3 + A3*B4, A1*B3 + A2*B4 + A3*B5 ]여전히 memory error가 발생한다.
리스트나 변수를 굳이 만들지 않고 코드를 작성하는 법을 익혀야 될 것 같다.