城市物流
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Sakuya所居住的城市非常特殊,可以看成一个周长为 L 的圆。其中有 n 个工厂和 n 个仓库。每一个工厂的产品都要送往一个仓库,每个仓库也只能存储一个工厂的产品。
其中还有一家物流公司,以物流公司为原点, n 个工厂的位置分别在物流公司逆时针方向距离为 a_1,a_2,...,a_n 的位置,  n 个仓库的位置分别在物流公司逆时针方向距离为 b_1,b_2,...,b_n 的位置。为了更好地安排城市物流,需要设计一种工厂和仓库的运输关系,使得所有工厂到其对应仓库的最大运输距离尽可能小。

输入描述:

第一行输入两个整数  ,分别表示工厂和仓库总数和城市周长。
第二行输入 n 个整数  ,表示各个工厂的位置。
第三行输入 n 个整数  ,表示各个仓库的位置。
输入不保证 a_i 和 b_i 两两不同。

输出描述:

输出一行一个整数,表示所有工厂到其对应仓库的最大运输距离的最小值。
示例1

输入

复制
2 4
0 1
2 3

输出

复制
1

说明

可以让第1个工厂的货物运往第2个仓库,第2个工厂的货物运往第1个仓库,运输距离都是1。
示例2

输入

复制
10 100
3 14 15 92 65 35 89 79 32 38
2 71 82 81 82 84 5 90 45 23

输出

复制
27

说明

一种最优的运输关系是:
1到10的工厂分别与(6,8,1,4,5,10,3,2,7,9)的仓库建立运输关系。