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;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  long long g[2][n], sumC = 0, sumB = 0;
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < n; j++) {
      cin >> g[i][j];
    }
  }
  long long dpBaixo[2][n], dpCima[2][n], prefix[2][n], somaAtual = 0,
                                                       resposta = 0;
  prefix[0][n - 1] = dpCima[0][n - 1] = dpBaixo[0][n - 1] = sumC = g[0][n - 1];
  prefix[1][n - 1] = dpBaixo[1][n - 1] = dpCima[1][n - 1] = sumB = g[1][n - 1];
  for (int i = n - 2; i >= 0; i--) {
    dpBaixo[1][i] = sumB + dpBaixo[1][i + 1] + g[1][i];
    dpCima[0][i] = sumC + dpCima[0][i + 1] + g[0][i];
    dpBaixo[0][i] = dpBaixo[0][i + 1] + (g[0][i] * (n - i));
    dpCima[1][i] = dpCima[1][i + 1] + (g[1][i] * (n - i));
    prefix[0][i] = prefix[0][i + 1] + g[0][i];
    prefix[1][i] = prefix[1][i + 1] + g[1][i];
    sumB += g[1][i];
    sumC += g[0][i];
  }
  int j = 0, c = -1;
  for (int i = 0; i < n; i++) {
    if (i - 1 >= 0) somaAtual += g[j][i - 1] * c;
    long long prefixSum = 0;
    if (j % 2 == 0) {
      prefixSum += dpCima[0][i] + (c * prefix[0][i]);
      if (i % 2 == 0)
        prefixSum += dpCima[1][i] + ((c + (n - i)) * prefix[1][i]);
      else if (i + 1 < n)
        prefixSum += dpCima[1][i + 1] + ((c + (n - i)) * prefix[1][i + 1]);
    } else {
      prefixSum += dpBaixo[1][i] + (c * prefix[1][i]);
      if (i % 2 != 0)
        prefixSum += dpBaixo[0][i] + ((c + (n - i)) * prefix[0][i]);
      else if (i + 1 < n)
        prefixSum += dpBaixo[0][i + 1] + ((c + (n - i)) * prefix[0][i + 1]);
    }
    resposta = max(resposta, prefixSum + somaAtual);
    somaAtual += g[j][i] * (c + 1);
    j ^= 1;
    c += 2;
  }
  somaAtual += g[j][n - 1] * c;
  cout << max(somaAtual, resposta) << '\n';
  return 0;
}
