比赛 csp2025模拟练习3 评测结果 AAAAAAAAA
题目名称 Symmetric Mountains 最终得分 100
用户昵称 会挽弯弓满月 运行时间 1.449 s
代码语言 C++ 内存使用 75.96 MiB
提交时间 2025-10-30 09:02:16
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=5010;
int n;
int h[N];
int f[N][N];
int sum[N][N];
int main(){
	freopen("Mountains.in","r",stdin);
	freopen("Mountains.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&h[i]);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			f[i][j]=abs(h[i]-h[j]);
		}
	}
	int ed,r,ans;
	for(int len=1;len<=n;len++){
		ed=n-len+1;
		ans=1e9+7;
		for(int l=1;l<=ed;l++){
			r=l+len-1;
			sum[l][r]=sum[l+1][r-1]+f[l][r];
			ans=min(ans,sum[l][r]);
		}
		printf("%d ",ans);
	}
	return 0;
}