原题链接:https://s2.loli.net/2024/10/04/3V6bkAfP9cslDOh.png
#include<bits/stdc++.h>
using namespace std;
long long n,d,a[20005],b[20005],s,l,r,h;
int main(){
cin>>n>>d;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)cin>>b[i];
sort(b+1,b+n+1);
for(int i=n;i>=1;i--){
l=1,r=n,h=0;
while(l<=r){
int mid=(l+r)/2;
if((b[mid]<=a[i]+d&&b[mid]>=a[i]-d)||(a[mid]<=b[i]+d&&a[mid]>=b[i]-d)){
h=1;
//cout<<mid<<" "<<i<<endl;
break;
}
else r=mid-1;
}
if(h==0)continue;
l=1,r=n,h=0;
while(l<=r){
int mid=(l+r)/2;
if(b[mid]<=a[i]+d&&b[mid]>=a[i]-d){
h=mid;
l=mid+1;
}
else r=mid-1;
}
if(h!=0)s=a[i]+b[h];
l=1,r=n,h=0;
while(l<=r){
int mid=(l+r)/2;
if(a[mid]<=b[i]+d&&a[mid]>=b[i]-d){
h=mid;
l=mid+1;
}
else r=mid-1;
}
if(h!=0)
if(a[h]+b[i]>s)
s=a[h]+b[i];
break;
}
if(s==0)cout<<"None";
else cout<<s;
return 0;
}