fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n, m;
  4. int ans = INT_MIN;
  5. void dp_cal(vector<int> a, vector<int> b){
  6. vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));
  7. for(int i = 1; i <= n; i++){
  8. for(int j = 1; j <= m; j++){
  9. dp[i][j] = max(dp[i][j], dp[i - 1][i - 1] + a[i] * b[j]);
  10. ans = max(dp[i][j], ans);
  11. }
  12. }
  13. }
  14. int main() {
  15. cin.tie(0);
  16. ios::sync_with_stdio(false);
  17. cin >> n >> m;
  18. vector<int> a(n + 1);
  19. vector<int> b(m + 1);
  20. for(int i = 1; i <= n; i++){
  21. cin >> a[i];
  22. }
  23. for(int i = 1; i <= m; i++){
  24. cin >> b[i];
  25. }
  26. dp_cal(a, b);
  27. reverse(a.begin() + 1, a.end());
  28. dp_cal(a, b);
  29. cout << ans;
  30.  
  31. }
Success #stdin #stdout 0.01s 5320KB
stdin
5 5
-3 -3 3 3 -3
2 2 2 2 2
stdout
12