#!/usr/bin/env python3 from math import floor n = int(input()) xs = list(map(int, input().split())) # list of (sum_x, count) # center = sum_x/count intervals = [] def overlap(l, r): # TODO: Convert to integer logic? return l[0] / l[1] + l[1] / 2 >= r[0] / r[1] - r[1] / 2 def merge(l, r): return (l[0] + r[0], l[1] + r[1]) for x in xs: intervals.append((x, 1)) # print(intervals) # NOTE: WA because this `if` should be `while`. if len(intervals) >= 2 and overlap(intervals[-2], intervals[-1]): intervals[-2] = merge(intervals[-2], intervals[-1]) intervals.pop() # print(intervals) # Convert intervals to actual position ranges for i in range(len(intervals)): (s, cnt) = intervals[i] if cnt % 2 == 0: # the middle is a half integer # round s to a half integer (x.5) m = floor(s / cnt) l = m - cnt // 2 + 1 r = m + cnt // 2 else: # the middle is integer m = round(s / cnt) l = m - (cnt - 1) // 2 r = m + (cnt - 1) // 2 # print(l, r) intervals[i] = [l, r] ans = 0 i = 0 for x in xs: ans += (x - intervals[i][0]) ** 2 intervals[i][0] += 1 if intervals[i][0] > intervals[i][1]: i += 1 print(ans)