社区讨论

错一个点,求助

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 条回复,欢迎继续交流。

正在加载回复...