6
12 8 12 17 20 5
17 4 8 8 8 4
 6
4 1 12 9 3 11
12 20 19 12 19 11
 1
1
1
 2
1 2
1 1
 1
7
5
 6
16 20 18 7 14 2
17 12 4 10 7 4

705
 917
 1
 9
 5
 741

#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 5, inf = 1e9 + 7, MOD = 998244353;
const long long INF = 2e18 + 7;
long long przyrost[2][2][N];
long long zbior[2][2][N];
int dane[2][N];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int n;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> dane[0][i];
  }
  for (int i = 0; i < n; ++i) {
    cin >> dane[1][i];
  }
  for (int i = n - 1; i >= 0; --i) {
    long long j = n - i - 1;
    zbior[0][0][i] = zbior[0][0][i + 1] + przyrost[0][0][i + 1] +
                     dane[0][i + 1] + (2 * j + 1) * dane[1][i];
    przyrost[0][0][i] = przyrost[0][0][i + 1] + dane[0][i + 1] + dane[1][i];
    zbior[0][1][i] = zbior[0][1][i + 1] + przyrost[0][1][i + 1] +
                     dane[1][i + 1] + 2 * j * dane[0][i + 1];
    przyrost[0][1][i] = przyrost[0][1][i + 1] + dane[1][i + 1] + dane[0][i + 1];
    zbior[1][0][i] = zbior[1][0][i + 1] + przyrost[1][0][i + 1] +
                     dane[0][i + 1] + 2 * j * dane[1][i + 1];
    przyrost[1][0][i] = przyrost[1][0][i + 1] + dane[0][i + 1] + dane[1][i + 1];
    zbior[1][1][i] = zbior[1][1][i + 1] + przyrost[1][1][i + 1] +
                     dane[1][i + 1] + (2 * j + 1) * dane[0][i];
    przyrost[1][1][i] = przyrost[1][1][i + 1] + dane[1][i + 1] + dane[0][i];
  }
  long long res = 0;
  long long curr = 0;
  long long kroki = 0;
  for (int i = 0; i < n; ++i) {
    if (i % 2 == 0) {
      res = max(res, curr + zbior[0][0][i] + kroki * przyrost[0][0][i]);
      curr += dane[0][i] * kroki;
      kroki++;
      res = max(res, curr + zbior[0][1][i] + kroki * przyrost[0][1][i]);
      curr += dane[1][i] * kroki;
      ++kroki;
    } else {
      res = max(res, curr + zbior[1][1][i] + kroki * przyrost[1][1][i]);
      curr += dane[1][i] * kroki;
      kroki++;
      res = max(res, curr + zbior[1][0][i] + kroki * przyrost[1][0][i]);
      curr += dane[0][i] * kroki;
      kroki++;
    }
  }
  cout << max(res, curr);
  return 0;
}
