社区讨论
错一个点,求助
AT_abc119_d [ABC119D] Lazy Faith参与者 1已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhjujxpq
- 此快照首次捕获于
- 2025/11/04 08:44 4 个月前
- 此快照最后确认于
- 2025/11/04 08:44 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
int n,m,q;
ll a[100005],b[100005];
ll f(ll x,ll y){
return x+y+min(x,y);
}
ll inf=3e10+1;
int main(){
cin>>n>>m>>q;
ll p;
for(int i=1;i<=n;i++)cin>>a[i];
for(int j=1;j<=m;j++)cin>>b[j];
sort(a+1,a+n+1);
sort(b+1,b+n+1);
while(q--){
cin>>p;
ll ls=-2e10,rs=inf,lt=-2e10,rt=inf;
if(p<a[n]){
int t=lower_bound(a+1,a+n+1,p)-a;
rs=a[t];
if(t!=1)ls=a[t-1];
}
else ls=a[n];
if(p<b[m]){
int t=lower_bound(b+1,b+m+1,p)-b;
rt=b[t];
if(t!=1)lt=b[t-1];
}
else lt=b[m];
ll ans1=max(p-ls,p-lt),ans2=max(rs-p,rt-p);
ll ans3=f(p-ls,rt-p),ans4=f(p-lt,rs-p);
cout<<min(min(ans1,ans2),min(ans3,ans4))<<'\n';
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...