APCS - 11106-4-2.cpp

本文最後更新於:2024年1月12日 下午

APCS - 11106-4-2.cpp

APCS-11106-4-2.cpp

// Author : ysh
// 06/14/2022 Tue  8:26:42.81
#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include<C:\Users\Public\debug.h>
#else
#define debug(...) '*'
#define printf(...) '*'
#endif

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    int a,b;cin>>a>>b;
    vector<int>f(a),g(b);
    for(int &i : f) {
        cin>>i;
    }
    for(int &i : g) {
        cin>>i;
    }
    int sig = 0;
    int ans = INT_MIN;
    vector<vector<int>>c(a,vector<int>(b));
    // for(int l = 0;l <= 1;l++) {
        // for(int i = 0;i<a;i++) {
        //     for(int j = 0;j<b;j++) {
        //         c[i][j] = f[i] * g[j];
        //     }
        // }
        // for(int i = 0;i<a;i++) {
            for(int j = 0;j<b;j++) {
                int pi = 0;
                int pj = j;
                sig = 0;
                while(pi != a) {
                    // debug(pi,pj);
                    if(sig < 0) sig = 0;
                    sig += f[pi++] * g[pj++];
                    ans = max(ans,sig);
                    if(pj == b) {
                        // cerr<<1;
                        pj = 0;
                        sig = 0;
                    }
                }
            }
            for(int j = 0;j<b;j++) {
                int pi = 0;
                int pj = j;
                sig = 0;
                while(pi != a) {
                    // debug(pi,pj);
                    if(sig < 0) sig = 0;
                    sig += f[pi++] * g[pj--];
                    ans = max(ans,sig);
                    if(pj == -1) {
                        // cerr<<1;
                        pj = b - 1;
                        sig = 0;
                    }
                }
            }
        // }
        // reverse(g.begin(),g.end());
    // }
    cout<<ans;
    return 0;
}

APCS - 11106-4-2.cpp
http://mysh212.github.io/algosolution/APCS-11106-4-2.cpp/
作者
ysh
發布於
2022年6月14日
更新於
2024年1月12日
許可協議