fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define pii pair<int,int>
  4. #define pli pair<ll,int>
  5. #define pil pair<int,ll>
  6. #define piii pair<int,pii>
  7. #define fi first
  8. #define se second
  9. #define all(ds) (ds).begin(), (ds).end()
  10. #define debug {cout << "baka" , exit(0);}
  11. template<typename T> bool maximize(T &res, const T &val){ if(res <= val){ res = val; return true; } return false; }
  12. template<typename T> bool minimize(T &res, const T &val){ if(res >= val){ res = val; return true; } return false; }
  13.  
  14. using namespace std;
  15.  
  16. const int N = 2e5;
  17. const int inf32 = 1e9 + 7;
  18. const ll inf64 = 1e18 + 6;
  19. const int MAI = 5000;
  20. const int LOG = 20;
  21. const int mod = 1e9 + 7;
  22.  
  23. ll res = -inf64;
  24. int n , q;
  25. int a[N + 5] , b[N + 5];
  26.  
  27. void Shinai()
  28. {
  29. ios_base::sync_with_stdio(0);
  30. cin.tie(0);
  31. cout.tie(0);
  32. #define TASK "ShinaiTapCode"
  33. if(fopen(TASK".INP" , "r"))
  34. {
  35. freopen(TASK".INP" , "r" , stdin);
  36. freopen(TASK".OUT" , "w" , stdout);
  37. }
  38. }
  39.  
  40. void add(int &x , int y) {
  41. x += y;
  42. if(x >= mod) x -= mod;
  43. }
  44. void sub(int &x , int y) {
  45. x -= y;
  46. if(x < 0) x += mod;
  47. }
  48.  
  49. void process()
  50. {
  51.  
  52. }
  53.  
  54. void read()
  55. {
  56. cin >> n;
  57. for(int i = 1 ; i <= n ; i ++) cin >> a[i];
  58. for(int i = 1 ; i <= n ; i ++) cin >> b[i];
  59. for(int i = 1 ; i <= n ; i ++)
  60. {
  61. ll sum = 1LL * a[i] * b[i];
  62. res = max(res , sum);
  63. int l = i - 1 , r = i + 1;
  64. while(l >= 1 && r <= n)
  65. {
  66. sum += 1LL * a[l] * b[r];
  67. sum += 1LL * a[r] * b[l];
  68. res = max(res , sum);
  69. l --; r ++;
  70. }
  71. }
  72. for(int i = 1 ; i < n ; i ++)
  73. {
  74. ll sum = 1LL * a[i] * b[i + 1] + 1LL * a[i + 1] * b[i];
  75. res = max(res , sum);
  76. int l = i - 1 , r = i + 2;
  77. while(l >= 1 && r <= n)
  78. {
  79. sum += 1LL * a[l] * b[r];
  80. sum += 1LL * a[r] * b[l];
  81. res = max(res , sum);
  82. l --; r ++;
  83. }
  84. }
  85. cout << res << '\n';
  86. }
  87.  
  88. int main()
  89. {
  90. Shinai();
  91. int test_case;
  92. test_case = 1;
  93. //cin >> test_case;
  94. while(test_case --) {
  95. read();
  96. process();
  97. }
  98. return 0;
  99. }
  100.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
-1000000000000000000