func maxRotateFunction(A []int) int { n := len(A) if n <= 1 { return 0 } sum, fx := 0, 0 for i, a := range A { sum, fx = sum+a, fx+i*a } max := fx for i := n - 1; 0 < i; i-- { fx += sum - n*A[i] if max < fx { max = fx } } return max }