乘客需要多运动¶
- 参考时间限制:0.5 秒(参考环境:评测环境与性能;仅供预估)
- 实际时间限制:标准程序在目标评测环境中处理最慢正式测试文件的基准时间的 2 倍,按 0.5 秒的倍数向上取整。
- 内存限制:512 MB
背景故事¶
铁路公司董事会经过一番研判,认为乘客旅途劳累,更应该多运动。于是,董事会决定让列车停在能让乘客走得尽可能远的位置。
列车停稳后,每位乘客都会走向最近的车门。司机需要在所有车门都位于站台范围内的前提下,让乘客的总步行距离尽可能长;如果有多个同样好的位置,就让第一扇车门尽量靠左。
形式化问题描述¶
站台是坐标区间 \([0,L]\) . 有 \(M\) 名乘客,位置分别为 \(P_1\le\cdots\le P_M\) . 列车有 \(N\) 扇门,相对第一扇门的偏移量为 \(0=D_1<D_2<\cdots<D_N\) .
设第一扇门停在实数坐标 \(S\) . 要求 \(0\le S\le L-D_N\) . 此时第 \(j\) 扇门的实际坐标是 \(S+D_j\) ,乘客 \(i\) 到最近车门的距离是 \(\min_{1\le j\le N}|P_i-(S+D_j)|\) . 求使所有乘客的距离之和最大的 \(S\) ;若有多个最优位置,取最小的 \(S\) .
保证所求位置和最大距离之和都是整数或半整数。输出一位小数的精确值。
输入格式¶
第一行一个整数 \(L\) ,第二行一个整数 \(M\) .
第三行 \(M\) 个整数 \(P_1,\ldots,P_M\) .
第四行一个整数 \(N\) . 若 \(N>1\) ,第五行给出 \(N-1\) 个整数 \(D_2,\ldots,D_N\) ;若 \(N=1\) ,输入在第四行结束。
输出格式¶
输出两个保留一位小数的数,依次为最小的最优位置 \(S\) 与最大距离之和。
样例 1¶
输入¶
4
5
0 1 2 3 4
4
1 2 3
输出¶
0.5 2.5
解释¶
停在 \(S=0.5\) 时,五人的最近车门距离依次为 \(0.5,0.5,0.5,0.5,0.5\) ,总和是 \(2.5\) .
样例 2¶
输入¶
10
1
5
1
输出¶
0.0 5.0
解释¶
只设一扇门时,\(S=0\) 与 \(S=10\) 均取得最大距离 \(5\) ,按规则选 \(S=0\) .
数据范围与保证¶
- \(1\le L\le 1\,000\,000\,000\) .
- \(1\le M,N\le 300\) ,且 \(N\le L+1\) .
- \(0\le P_1\le\cdots\le P_M\le L\) .
- \(D_1=0<D_2<\cdots<D_N\le L\) .
数据分组¶
| 分值比例 | 额外条件 |
|---|---|
| 30% | \(L\le 100\) ,\(M,N\le 50\) |
| 70% | 无额外条件 |