题目:1353. 滑雪场设计
题解:把高度差为17的长度枚举一遍,然后找出最小的即可。时间复杂度最大为0(10^6)。
#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef pair<int ,int> PII;
const int N=1e5+10;
const int mod=100000007;
unordered_map<string,int > mp;
int main(){
int n;
cin>>n;
int a[1010];
for(int i=0;i<n;i++)
cin>>a[i];
LL minn=0x3f3f3f3f3f3f3f3f;
for(int i=0;i<=100-17;i++){
int j=i+17;
LL sum=0;
for(int k=0;k<n;k++){
if(a[k]<i) sum+=(a[k]-i)*(a[k]-i);
if(a[k]>j) sum+=(a[k]-j)*(a[k]-j);
}
minn=min(minn,sum);
}
cout<<minn;
return 0;
}