【题目分析】
贪心
【代码】
#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
const int inf=0x3f3f3f3f;
int a[1001],n,x;
int b[1001];
int c[1001],maxx=-inf,p,cnt=0;
long long ans=0;
int main()
{
scanf("%d",&n);
for (int i=0;i<n;++i)
{
scanf("%d",&x);
while (x)
{
a[cnt++]=i;
x--;
}
}
for (int i=0;i<n;++i) b[i]=a[i]-i;
for (int i=0;i<n;++i)
if (b[i]>maxx) maxx=b[i],p=i;
c[p]=a[p];
for (int i=p-1;i>=0;--i)
c[i]=c[i+1]-1,c[i]%=n;
for (int i=p+1;i<n;++i)
c[i]=c[i-1]+1,c[i]%=n;
for (int i=0;i<n;++i)
{
if (c[i]<a[i]) c[i]+=n;
ans+=((ll)c[i]-a[i])*((ll)c[i]-a[i]);
}
printf("%lld\n",ans);
}