比赛 csp2025模拟练习3 评测结果 C
题目名称 Symmetric Mountains 最终得分 0
用户昵称 梦那边的美好ME 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2025-10-30 08:22:46
显示代码纯文本
#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;
}