滑雪场设计
由题意可知, 最后所有的山的高度都在一个相差17的区间之内,所以维持一个大小为17的区间,从小到大遍历即可
#include<bits/stdc++.h>
using namespace std;
const int N = 10000;
int a[N];
map<int,int>b;
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i ++)
{
cin >> a[i];
}
int res = INT_MAX;
for(int i = 0; i <= 83; i ++)//假设i为最小高度
{
int ans = 0;
for(int j = 0; j < n ; j ++)
{
if(a[j] < i)ans += abs(a[j] - i) * abs(a[j] - i);
if(a[j] > i + 17)ans += (a[j] - i - 17) * (a[j] - i - 17);
}
if(ans < res)res = ans;
}
cout << res <<endl;
return 0;
}