专栏文章
国庆集训Day2
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minp2m4i
- 此快照首次捕获于
- 2025/12/02 06:02 3 个月前
- 此快照最后确认于
- 2025/12/02 06:02 3 个月前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans=0x7ffffffffff;
int h[200005],w[200005];
int f[200005];
int f1[200005];
signed main(){
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",&h[i]);
}
sort(h+1,h+n+1);
for(int i=1;i<=m;i++){
scanf("%lld",&w[i]);
}
sort(w+1,w+m+1);
for(int i=2;i<=n;i++){
if(i%2){
f[i]=f[i-1];
continue;
}
f[i]=abs(h[i]-h[i-1]);
f[i]+=(f[i-1]);
}
for(int i=n-1;i>=2;i--){
if(i%2){
f1[i]=f1[i+1];
continue;
}
f1[i]=abs(h[i]-h[i+1]);
f1[i]+=(f1[i+1]);
}
for(int i=1;i<=m;i++){
int sum=0;
int id=lower_bound(h+1,h+n+1,w[i])-h;
if(id%2==1){
sum+=f[id-1];
sum+=f1[id+1];
sum+=abs(w[i]-h[id]);
}
else{
sum+=f[id-2];
sum+=f1[id];
sum+=abs(w[i]-h[id-1]);
}
ans=min(ans,sum);
}
printf("%lld",ans);
return 0;
}
/*
*/
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...