package main
import (
"bufio"
"io"
"os"
"strconv"
)
type FastScanner struct {
data []byte
idx int
n int
}
func NewFastScanner() *FastScanner {
data, _ := io.ReadAll(os.Stdin)
return &FastScanner{data: data, n: len(data)}
}
func (fs *FastScanner) NextInt() int {
for fs.idx < fs.n && fs.data[fs.idx] <= ' ' {
fs.idx++
}
sign := 1
if fs.idx < fs.n && fs.data[fs.idx] == '-' {
sign = -1
fs.idx++
}
val := 0
for fs.idx < fs.n {
c := fs.data[fs.idx]
if c < '0' || c > '9' {
break
}
val = val*10 + int(c-'0')
fs.idx++
}
return val * sign
}
func main() {
fs := NewFastScanner()
n := fs.NextInt()
a := make([]int64, n)
b := make([]int64, n)
for i := 0; i < n; i++ {
a[i] = int64(fs.NextInt())
}
for i := 0; i < n; i++ {
b[i] = int64(fs.NextInt())
}
sumA := make([]int64, n+1)
sumB := make([]int64, n+1)
idxA := make([]int64, n+1)
idxB := make([]int64, n+1)
for i := n - 1; i >= 0; i-- {
sumA[i] = sumA[i+1] + a[i]
sumB[i] = sumB[i+1] + b[i]
idxA[i] = idxA[i+1] + a[i]*int64(i)
idxB[i] = idxB[i+1] + b[i]*int64(i)
}
var ans int64
var cur int64
for i := 0; i <= n; i++ {
score := cur
coef := int64(2*n + i - 1)
if i%2 == 0 {
score += int64(i)*sumA[i] + idxA[i]
score += coef*sumB[i] - idxB[i]
} else {
score += int64(i)*sumB[i] + idxB[i]
score += coef*sumA[i] - idxA[i]
}
if score > ans {
ans = score
}
if i == n {
break
}
t := int64(2 * i)
if i%2 == 0 {
cur += t*a[i] + (t+1)*b[i]
} else {
cur += t*b[i] + (t+1)*a[i]
}
}
w := bufio.NewWriterSize(os.Stdout, 1<<20)
w.WriteString(strconv.FormatInt(ans, 10))
w.WriteByte('\n')
w.Flush()
}