比赛 csp2025模拟练习3 评测结果 AAAAAAAAA
题目名称 Symmetric Mountains 最终得分 100
用户昵称 健康铀 运行时间 0.135 s
代码语言 C++ 内存使用 3.94 MiB
提交时间 2025-10-30 10:38:51
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll h[10101];
ll x[10101], y[10101];

int main(){
	freopen("Mountains.in","r",stdin);
	freopen("Mountains.out","w",stdout);
    int n;
    scanf("%d", &n);
    for(int i=1;i<=n;++i) scanf("%lld", &h[i]);
    printf("0 ");
    for(int i=2;i<=n;++i){
        if(i%2==1){
            int l=n-i+1, r=n;
            ll m=1e15;
            while(r>=i){
                x[r]=x[r-1]+abs(h[r]-h[l]);
                m=min(m,x[r]);
                --l;--r;
            }
            printf("%lld ", m);
        }else{
            int l=n-i+1, r=n;
            ll m=1e15;
            while(r>=i){
                y[r]=y[r-1]+abs(h[r]-h[l]);
                m=min(m,y[r]);
                --l;--r;
            }
            printf("%lld ", m);
        }
    }
    return 0;
}