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;
long long n;
long long niz[300005][2];
long long gore, dole;
long long obican[300005];
long long sranje = 0, res;
int main() {
  scanf("%I64d", &n);
  for (int i = 1; i <= n; i++) scanf("%I64d", &niz[i][0]);
  for (int i = 1; i <= n; i++) scanf("%I64d", &niz[i][1]);
  for (int i = 1; i <= n; i++) gore += (i - 1ll) * niz[i][0];
  for (int i = 1; i <= n; i++) gore += (n - 1 + i) * niz[n - i + 1][1];
  for (int i = 1; i <= n; i++) dole += (i - 1ll) * niz[i][1];
  for (int i = 1; i <= n; i++) dole += (n - 1 + i) * niz[n - i + 1][0];
  for (int i = n; i >= 1; i--)
    obican[i] = obican[i + 1] + niz[i][0] + niz[i][1];
  res = gore;
  for (long long i = 1; i <= n; i++) {
    dole -= (2 * i - 2) * niz[i][1] + niz[i][0] * (2 * n - 1) - obican[i + 1];
    gore -= (2 * i - 2) * niz[i][0] + niz[i][1] * (2 * n - 1) - obican[i + 1];
    if (i % 2 == 1) {
      sranje += (i - 1) * 2 * (niz[i][0] + niz[i][1]) + niz[i][1];
      res = max(res, sranje + dole);
    } else {
      sranje += (i - 1) * 2 * (niz[i][1] + niz[i][0]) + niz[i][0];
      res = max(res, sranje + gore);
    }
  }
  printf("%I64d", res);
  return 0;
}
