(我都不好意思说这是普及组的题了)
Petya和Vasya被聘为快递员。在工作日期间,他们将提供包裹到线上的不同点。根据公司的内部规定,包裹的交付必须严格按照一定的顺序进行。最初,Petya处于坐标s1的点,Vasya位于坐标s2的点,n个顾客所需访问的顺序位于点x1,x2,...,xn。
这些人预先同意他们谁将交付给哪些客户,然后他们的行为如下。当第i个客户端的包裹被交付时,两个快递员中的其中一个负责去送第i+1个。此时不送快递员的那个原地不动。即快递是严格按照顾客顺序一个个在送的,一个快递员在送的时候,另一个快递员是不动的。
由于要相互沟通,这些家伙有对讲机。对讲机的工作距离不是很远,所以Petya和Vasya想在送快递的时候,使得他们的最大距离尽可能低。帮助Petya和Vasya尽量减少他们之间的最大距离,遵守所有交货规则。
对于100%的数据,n<=100000
智商忽然下线 很显然要二分最大距离然后判定.
假设现在送到第i个地方,那么肯定有一个人待在x[i]这里 .
存下另一个人可能的位置
那么现在考虑从一个确定的位置和一堆可能的位置 送下一个快递
若x[i-1] -> x[i]这段距离不超过m,则有两种选择:
当前确定位置的那个人送(另一个人可能位置不变,不加入x[i-1])
或者
不确定位置的那个人送 (去掉之前所有,加入x[i-1]).
两种可能拼起来就是在原本基础上加入x[i-1].
最后由确定位置可以得到另一个人位置的上下界,不符合的用数据结构筛掉即可。