#include <bits/stdc++.h>
using namespace std;
long long a[3][300006];
long long sum[300006];
long long pretop[300007];
long long prebot[300006];
long long memo[3][300006][3];
int n;
long long dp(int r, int i, bool f) {
  if (i >= n) return 0;
  long long &z = memo[r][i][f];
  if (z != -1) return z;
  z = 0;
  if (f) {
    if (r == 0) {
      z = pretop[i];
      z = max(z, dp(1, i, 0) + sum[i + 1] * 2 + a[1][i]);
    } else {
      z = prebot[i];
      z = max(z, dp(0, i, 0) + sum[i + 1] * 2 + a[0][i]);
    }
  } else
    z = dp(r, i + 1, 1);
  return z;
}
int main() {
  scanf("%d", &n);
  memset(memo, -1, sizeof memo);
  for (int i = 0; i < n; i++) scanf("%lld", &a[0][i]);
  for (int i = 0; i < n; i++) scanf("%lld", &a[1][i]);
  for (int i = 0; i < n; i++) sum[i] = a[0][i] + a[1][i];
  for (int i = n - 2; i >= 0; i--) sum[i] += sum[i + 1];
  pretop[n - 1] = a[1][n - 1];
  for (int i = n - 2; i >= 0; i--)
    pretop[i] = pretop[i + 1] + sum[i + 1] + a[1][i] * ((n - i) * 2 - 1);
  prebot[n - 1] = a[0][n - 1];
  for (int i = n - 2; i >= 0; i--)
    prebot[i] = prebot[i + 1] + sum[i + 1] + a[0][i] * ((n - i) * 2 - 1);
  long long ans = dp(0, 0, 1);
  printf("%lld\n", ans);
  return 0;
}
