显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,ans,num;
ll h[11000];
ll nl,nr;
ll a[11000],b[11000];
int main(){
freoppen("Mountains.in","r",stdin);
freopen("Mountains.out","w",stdout);
ios::sync_with_stdio(0);cin.tie(0);
cin>>n;
for (int i=1;i<=n;i++){
cin>>h[i];
}
cout<<0;
for (int len=2;len<=n;len++){
if (len%2==1){
ans=1e18;
for (ll l=n-len+1;l>=1;l--){
ll r=l+len-1;
a[r]=a[r-1]+abs(h[r]-h[l]);
ans=min(ans,a[r]);
}
cout<<" "<<ans;
}else{
ans=1e18;
for (ll l=n-len+1;l>=1;l--){
ll r=l+len-1;
b[r]=b[r-1]+abs(h[r]-h[l]);
ans=min(ans,b[r]);
}
cout<<" "<<ans;
}
}
return 0;
}