A3016 | 公交车
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
某城市有个能容纳 $n$ 辆公交车的停车场。每一天,这些公交车都要依次有序离开停车库去另一个终点站。这终点站距离停车场有 $d$ 米的路程。当然第 $i$ 辆公交车离开停车场的时间是 $t_i$ 秒,并以最大速度不超过 $v_i$ 米/秒行驶,加速度最大值为 $a$。一辆公交车能瞬间减速,也能瞬间改变它的加速度。当然每辆车的最大加速度都一样为 $a$。
不管有多大的马力,一辆公交车都不能超过其他另外的公交车,如果一辆公交车追上另一辆公交车,那么后面追上的车跟前面被追的车一起并排行驶同时到达终点站。当然司机都是尽可能快的驾车到达终点站的。
作为公交公司老板的你,希望每辆公交车都尽可能快的到达终点站。当然,公交车到达终点站时,速度可以没必要达到 $0$。当一辆公交车离开停车场时,它的起始速度等于 $0$。通过物理的观点解释的话,公交车可以看成是抽象的一个物体而已,除了能加速和减速,其他对速度的影响都可以忽略掉。
不管有多大的马力,一辆公交车都不能超过其他另外的公交车,如果一辆公交车追上另一辆公交车,那么后面追上的车跟前面被追的车一起并排行驶同时到达终点站。当然司机都是尽可能快的驾车到达终点站的。
作为公交公司老板的你,希望每辆公交车都尽可能快的到达终点站。当然,公交车到达终点站时,速度可以没必要达到 $0$。当一辆公交车离开停车场时,它的起始速度等于 $0$。通过物理的观点解释的话,公交车可以看成是抽象的一个物体而已,除了能加速和减速,其他对速度的影响都可以忽略掉。
输入格式
第一行三个空格隔开的整数 $n, a, d$($1 \leq n \leq 10^5$,$1 \leq a, d \leq 10^6$),分别表示公交车的数量,最大加速度。离终点站的距离。
接下来 $n$ 行,每行有一对整数 $t_i, v_i$($0 \leq t_1 < t_2 < \cdots < t_{n-1} < tn \leq 10^6$,$1 \leq v_i \leq 10^6$),分别表示每辆车离开停车场的时刻和能够行驶的最大速度。
接下来 $n$ 行,每行有一对整数 $t_i, v_i$($0 \leq t_1 < t_2 < \cdots < t_{n-1} < tn \leq 10^6$,$1 \leq v_i \leq 10^6$),分别表示每辆车离开停车场的时刻和能够行驶的最大速度。
输出格式
输出每辆公交车到达终点站的时刻。一行表示一辆公交车的到达时刻,输出时刻的公交车顺序按照输入的公交车顺序。输出答案的相对或绝对误差不能超过 $10^{-4}$(即末尾保留 $4$ 位小数)。
输入输出样例
输入 #1
3 10 10000 0 10 5 11 1000 1
输出 #1
1000.5000 1000.5000 11000.0500
【样例解释】
第二辆公交车能追上第一辆公交车,在行驶到距离终点 $510.5$ 公里处。然后还剩 $9489.5$ 公里的路程,两辆车都以 $10$ km/h 的速度,一起到达终点的,它们到达终点的时刻是 $1000.5$ 秒,第三辆公交车不能赶上其他的公交车,他到达终点的时刻是 $11000.05$ 秒。
第二辆公交车能追上第一辆公交车,在行驶到距离终点 $510.5$ 公里处。然后还剩 $9489.5$ 公里的路程,两辆车都以 $10$ km/h 的速度,一起到达终点的,它们到达终点的时刻是 $1000.5$ 秒,第三辆公交车不能赶上其他的公交车,他到达终点的时刻是 $11000.05$ 秒。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?