ABC F题求 hack
  • 板块学术版
  • 楼主ppip嘟嘟嘟
  • 当前回复20
  • 已保存回复20
  • 发布时间2022/12/24 21:44
  • 上次更新2023/10/24 06:43:33
查看原帖
ABC F题求 hack
374433
ppip嘟嘟嘟楼主2022/12/24 21:44

想试一发,结果过了。。。

#include <bits/stdc++.h>
using namespace std;
const int N(2e5);
int P[N+5],D[N+5];
int dis(int x,int y) {
    return abs(x-y)+abs(P[x]-P[y]);
}
int main() {
    int n;scanf("%d",&n);
    for (int i{1};i<=n;++i) scanf("%d",P+i),D[i]=n;
    for (int i{1};i<=n;++i) {
        for (int j{i+1};j-i<D[i]&&j<=n;++j)
            D[i]=min(D[i],dis(i,j)),D[j]=min(D[j],dis(i,j));
        for (int j{i-1};i-j<D[i]&&j>=1;--j)
            D[i]=min(D[i],dis(i,j));
        printf("%d ",D[i]);
    }
    return 0;
}
2022/12/24 21:44
加载中...