- 题解
跳跳
- @ 2023-8-9 9:28:48
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int h[500];
int main(){
int n;
cin >> n;
for (int i = 1;i<=n;i++){
cin >> h[i];
}
sort(h + 1,h + 1 + n);
long long ans = 0; //消耗的体力
int mark = 0; //目的地的下标
bool x = 0; //从高到低跳还是从低到高跳 ,当x = 0时,是从低到高跳,反之
int m = 0; //出发地的高度
for (int i = 1; i <= n;i++){
mark = n - mark + x; //mark 下标
x = !x;
ans += (h[mark] - m) * (h[mark] - m);
m = h[mark]; //m是上次从哪起跳(是起跳石头的高度)
}
cout << ans << endl;
return 0;
}
0 条评论
目前还没有评论...