编程题
区间移位 ### 题目描述 数轴上有 $n$ 个闭区间:$D_1,\cdots D_n$ 。 其中区间 $D_i$ 用一对整数 $[a_i, b_i]$ 来描述,满足 $a_i \leq b_i$。 已知这些区间的长度之和至少有 $10^4$。 所以,通过适当的移动这些区间,你总可以使得他们的"并"覆盖 $[0,10^4]$,也就是说 $[0,10^4]$ 这个区间内的每一个点都落于至少一个区间内。 你希望找一个移动方法,使得位移差最大的那个区间的位移量最小。 具体来说,假设你将 $D_i$ 移动到 $[a_i+c_i,b_i+c_i]$这个位置。你希望使得 $\max \{|c_i|\}$ 最小。 ### 输入描述 输入的第一行包含一个整数 $n$ ,表示区间的数量。 接下来有 $n$ 行,每行 2 个整数 $a_i,b_i$ ,以一个空格分开,表示区间 $[a_i, b_i]$。 保证区间的长度之和至少是 $10^4$。 其中,$1 \leq n \leq 10^4,0 \leq a_i < b_i \leq 10^4$。 ### 输出描述 输出一个数字,表示答案。如果答案是整数,只输出整数部分。如果答案不是整数,输出时四舍五入保留一位小数。 ### 输入输出样例 #### 示例 1 > 输入 ```txt 2 10 5010 4980 9980 ``` > 输出 ```txt 20 ``` > 样例说明 第一个区间往左移动 10;第二个区间往右移动 20。 #### 示例 2 > 输入 ```txt 2 4 0 4000 3000 5000 5001 8000 7000 10000 ``` > 输出 ```txt 0.5 ``` > 样例说明 第 2 个区间往右移 0.5;第 3 个区间往左移 0.5 即可。
查看答案
赣ICP备20007335号-2