문제 링크 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpoFaAS4DFAUq


문제의 저작권은 SW Expert Academy에 있습니다.



#include <iostream>
 
using namespace std;
 
int main(void) {
    int T, N, M, sum, max;
    cin >> T;
 
    for(int t_case=0; t_case<T; t_case++) {
        cin >> N >> M;
        int a[N], b[M];
        int *A, *B;
 
        for(int i=0; i<N; i++)
            cin >> a[i];
        for(int i=0; i<M; i++)
            cin >> b[i];
 
        if(N == M) {
            max = 0;
            for(int i=0; i<N; i++)
                max += A[i]*B[i];
        } else {
            if(N <= M) {
                A = a;
                B = b;
            } else {
                A = b;
                B = a;
                int temp = M;
                M = N;
                N = temp;
            }
 
            max = -2147483648;
            for(int i=0; i<=M-N; i++) {
                sum = 0;
                for(int j=i; j<N+i; j++) {
                    sum += A[j-i]*B[j];
                }
                if(max < sum)
                    max = sum;
            }
        }
 
 
 
        cout << "#" << t_case+1 << " " << max << "\n";
    }
 
    return 0;
}
cs

'C & C++ > SW Expert Academy' 카테고리의 다른 글

SWEA 1948 - 날짜 계산기  (0) 2018.04.28
SWEA 1954 - 달팽이 숫자  (0) 2018.04.28
SWEA 1961 - 숫자 배열 회전  (0) 2018.04.28
SWEA 1970 - 쉬운 거스름돈  (0) 2018.04.28
SWEA 1974 - 스도쿠 검증  (0) 2018.04.28

+ Recent posts