1353. 滑雪场设计

\(minh\)\(n\)座山峰高度的最小值,\(maxh\)\(n\)座山峰高度的最大值。

枚举最终调整后的最低峰的高度为\(k\),则最高峰的高度为\(k+17\),对于低于最终最低峰高度的山峰或高于最终最高峰高度的山峰,对他们进行调整。

const int N=1010;
int h[N];
int n;

int main()
{
    cin>>n;
    
    int minh=100,maxh=0;
    for(int i=0;i<n;i++)
    {
        cin>>h[i];
        minh=min(minh,h[i]);
        maxh=max(maxh,h[i]);
    }
    
    int res=INF;
    for(int k=minh;k+17<=maxh;k++)
    {
        int sum=0;
        for(int i=0;i<n;i++)
        {
            if(h[i] < k) sum+=(h[i]-k)*(h[i]-k);
            if(h[i] > k+17) sum+=(h[i]-k-17)*(h[i]-k-17);
        }
        res=min(res,sum);
    }
    
    cout<<res<<endl;

    //system("pause");
    return 0;
}
posted @ 2021-05-02 22:04  Dazzling!  阅读(36)  评论(0编辑  收藏  举报