/*
二分答案,判mid是否合法
如何判断:如果是在直线上,那么遍历匹配即可
现在在环上,即既可以向前匹配也可以向后匹配,那么将环拆开,扩展成三倍 显然a和b的匹配边是不可能交叉的,因为交叉必定没有不交叉优
hall定理:二分图两个点集A,B,连续一段A的点对应连续一段B的点的 充要条件是 这些点对的匹配边之间不交叉
重要推论:二部图G中的两部分顶点组成的集合分别为X,Y, 若|X|=|Y|,
且G中有一组无公共端点的边,一端恰好组成X中的点,一端恰好组成Y中的点,则称二部图G中存在完美匹配 有了这个定理,就可以用在判定上:a的点集对应b点集的连续一段,即b的n个点也是连续的,因为之前已经确定匹配边不交叉
先求出a[1]的范围[a[1]-mid,a[1]+mid]对应的能控制的b数组的范围[l1,r1]
那么a[2]的控制范围要和[l1+1,r1+1]交叉得到[l2,r2]
那么a[3]的控制范围要和[l2+1,r2+1]交叉得到[l3,r3]
...依次类推

可以这个区间长度只会减小不会变大
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
long long n,L,a[maxn],b[maxn<<],c[maxn],m; int judge(int mid){//a[i]的控制区间是[a[i]-mid,a[i]+mid]
int l=,r=m;
for(int i=;i<=n;i++){
while(a[i]-mid>b[l])
++l;
while(a[i]+mid<b[r])
--r;
if(l>r)return ;
++l,++r;
}
return ;
} int main(){
cin>>n>>L;
for(int i=;i<=n;i++)cin>>a[i];
for(int i=;i<=n;i++)cin>>c[i];
sort(c+,c++n);sort(a+,a++n); for(int i=;i<=n;i++)b[i]=c[i]-L;
for(int i=;i<=n;i++)b[i+n]=c[i];
for(int i=;i<=n;i++)b[i+*n]=c[i]+L;
m=*n; int l=,r=L,ans,mid;
while(l<=r){
mid=l+r>>;
if(judge(mid))
ans=mid,r=mid-;
else l=mid+;
}
cout<<ans<<'\n';
}

最新文章

  1. Web测试的常用测试用例与知识
  2. LevelDB库简介
  3. 【wikioi】2495 水叮当的舞步(IDA*)
  4. ppaer 67 : matlab 函数errorbar
  5. SharePoint开发 - 使用Session(代码修改webconfig)
  6. Linux 下的类似Windows下Everything的搜索工具
  7. EF5.0默认不支持DB First了?
  8. 【Socket编程】通过Socket实现TCP编程
  9. Nginx Windows详细安装部署教程
  10. struts2简单入门-执行流程
  11. Day7 Ubantu学习(一)
  12. codeforces 982C Cut &#39;em all!
  13. 2018-2019-2 网络对抗技术 20165318 Exp6 信息搜集与漏洞扫描
  14. syslog-ng内容讲解
  15. %lld 和 %I64d的区别
  16. Java 8 新特性-菜鸟教程 (1) -Java 8 Lambda 表达式
  17. mysql添加伪劣及查看表信息
  18. CSS--布局模型,颜色值,长度值
  19. Js 的几种去重(一维)
  20. Getting command line access to PHP and MySQL running MAMP on OSX

热门文章

  1. Failed to bind properties under &#39;&#39; to com.zaxxer.hikari.Hikari DataSource Spring Boot解决方案
  2. 定时器实现Promise.all()的简单使用
  3. 【leetcode】967. Numbers With Same Consecutive Differences
  4. Delphi 滚动条的使用
  5. PHP ftp_close() 函数
  6. luoguP1290 欧几里德的游戏 [博弈论]
  7. IntelliJ IDEA创建Maven web项目速度慢的解决方法
  8. (转)OpenFire源码学习之七:组(用户群)与花名册(用户好友)
  9. 服务器安装TeamViewer 13
  10. C++子类父类构造函数的关系