D. Follow Traffic Rules
time limit per test

1 second

memory limit per test

64 megabytes

input

standard input

output

standard output

Everybody knows that the capital of Berland is connected to Bercouver (the Olympic capital) by a direct road. To improve the road's traffic capacity, there was placed just one traffic sign, limiting the maximum speed. Traffic signs in Berland are a bit peculiar, because they limit the speed only at that point on the road where they are placed. Right after passing the sign it is allowed to drive at any speed.

It is known that the car of an average Berland citizen has the acceleration (deceleration) speed of a km/h2, and has maximum speed of v km/h. The road has the length of l km, and the speed sign, limiting the speed to w km/h, is placed d km (1 ≤ d < l) away from the capital of Berland. The car has a zero speed at the beginning of the journey. Find the minimum time that an average Berland citizen will need to get from the capital to Bercouver, if he drives at the optimal speed.

The car can enter Bercouver at any speed.

Input

The first line of the input file contains two integer numbers a and v (1 ≤ a, v ≤ 10000). The second line contains three integer numbers l, d and w (2 ≤ l ≤ 10000; 1 ≤ d < l; 1 ≤ w ≤ 10000).

Output

Print the answer with at least five digits after the decimal point.

Examples
Input
1 1
2 1 3
Output
2.500000000000
Input
5 70
200 170 40
Output
8.965874696353

吐槽:这真是一道有意思的题。。纯高中物理题用代码实现的感觉就是不一样呀

题意:一辆车初速度为0,以恒定的加速度a在长为l的公路上行驶,据起点d处有一测速点,要求车到达此点时速度不得超过w,求走完这条公路的最短时间。

解题思路:跟高中做物理题一样,一点一点分析。
下面是我的分析:
一 v<=w
  1.一直加速到终点
  2.加速到v后匀速到终点
二 v>w
  1.在d段中一直加速也到不了w,那就一直加速
  2.在d段中加速超过w到达v1,然后减速在d点刚好速度为w
  3.在d段中加速超过w到达v,接着匀速一段,然后减速在d点刚好速度为w

  以上三种情况到达d后,再按照一中两个情况分析(l-d)的路程。

附ac代码:
 1 #include <cstdio>
2 #include <cstring>
3 #include <iostream>
4 #include <algorithm>
5 #include <stack>
6 #include <cmath>
7 using namespace std;
8 int main() {
9 ios::sync_with_stdio(false);
10 cin.tie(0);cout.tie(0);
11 double a,v,l,d,w;
12 scanf("%lf%lf%lf %lf%lf",&a,&v,&l,&d,&w);
13 double ans=0,t1=0,t2=0,x1=0,x2=0;
14 double det=0;
15 if(v<=w) {
16 t1=v/a;
17 x1=0.5*a*t1*t1;
18 if(x1>=l) {
19 ans=sqrt(2*l/a);
20 }
21 else {
22 x2=l-x1;
23 t2=x2/v;
24 ans=t1+t2;
25 }
26 }
27 else {
28 t1=sqrt(2*d/a);
29 if(t1*a<=w) {
30 t1=v/a;
31 x1=0.5*a*t1*t1;
32 if(x1>=l) {
33 ans=sqrt(2*l/a);
34 }
35 else {
36 x2=l-x1;
37 t2=x2/v;
38 ans=t1+t2;
39 }
40 }
41 else {
42 det=sqrt(2*w*w+4*a*d);
43 t2=(det-2*w)/(2*a);
44 if(w+a*t2<=v){
45 t1=(w+a*t2)/a;
46 ans=t1+t2;
47 }
48 else {
49 t1=v/a;
50 t2=(v-w)/a;
51 x1=0.5*a*t1*t1+v*t2-0.5*a*t2*t2;
52 x2=d-x1;
53 ans=t1+t2+x2/v;
54 }
55
56 t1=(v-w)/a;
57 x1=w*t1+0.5*a*t1*t1;
58 if(x1>(l-d)) {
59 det=sqrt(w*w+2*a*(l-d));
60 ans+=(det-w)/a;
61 }
62 else {
63 ans+=t1;
64 x2=l-d-x1;
65 ans+=(x2/v);
66 }
67 }
68 }
69 printf("%.12lf\n",ans);
70 return 0;
71 }

codeforces 5D的更多相关文章

  1. Codeforces 5D Follow Traffic Rules

    [题意概述] 某个物体要从A途经B到达C,在通过B的时候速度不能超过vd.  它的加速度为a,最大速度为vm:AB之间距离为d,AC之间距离为L: 问物体最少花多少时间到达C. [题解] 分情况讨论. ...

  2. Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想

    D. Taxes 题目链接 http://codeforces.com/contest/735/problem/D 题面 Mr. Funt now lives in a country with a ...

  3. Codeforces Round #509 (Div. 2) F. Ray in the tube(思维)

    题目链接:http://codeforces.com/contest/1041/problem/F 题意:给出一根无限长的管子,在二维坐标上表示为y1 <= y <= y2,其中 y1 上 ...

  4. Codeforces 1375F - Integer Game(交互)

    Codeforces 题面传送门 & 洛谷题面传送门 一个奇怪的做法. 首先我们猜测答案总是 First.考虑什么样的情况能够一步把对方一步干掉.方便起见我们假设 \(a<b<c\ ...

  5. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  6. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  7. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  8. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  9. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

随机推荐

  1. RecyclerView 源码分析(二) —— 缓存机制

    在前一篇文章 RecyclerView 源码分析(一) -- 绘制流程解析 介绍了 RecyclerView 的绘制流程,RecyclerView 通过将绘制流程从 View 中抽取出来,放到 Lay ...

  2. 初审blucms(入坑)

    作为一名初来乍到审计小白,从blueCMS入手再好不过了.通过对入门级的cms进行审计以及一个整体的框架和常见的漏洞学习,对个人而言是一次不错的学习经历.话不多说直接进入主题. 代码审计环境 Blue ...

  3. mysql主从复制安装配置

    mysql主从复制安装配置 基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.182.111(主) node2:192.168.1 ...

  4. idea maven package报错"不再支持源选项 5 请使用 6 或更高版本。不支持发行版本 5"

    解决办法: 1.确保java compile以及project和module的java字节码版本是所用的java版本:

  5. 为什么从REST转向gRPC 需要流式传输搜索结果,也就是在有第一批结果时就开始传输

    https://mp.weixin.qq.com/s/aEO3Y8SkObNgfQU3z8sH2w 我们为什么从REST转向gRPC 原创 Levin Fritz InfoQ 2019-06-23 作 ...

  6. Centos GitLab 配置

    如果重启之后,gitlab-ctl restart报"runsv no running"错,先运行下面命令 systemctl start gitlab-runsvdir.serv ...

  7. 关于notepad++不能设置中文的解决方法

    好久没用notepad++了,最近遇到一个base64的音频文件,想起来notepad++挺好用的 于是安装好 然后发现 最新的notepad++竟然不能显示中文界面 这怎么可以呢! 上网搜 果然 作 ...

  8. 高性能数据导入方案&表过滤器&一对多支持筛选- .NET SqlSugar ORM

    一.数据导入有哪些难题 1.数据分类 你需要将 插入.更新.忽略不计.错误数据 等进么分类汇总,最后返回给客户,如果没有很好的设计想把这些操作一步到位非常的难 2.高性能 对于插入或者更新 肯定不能单 ...

  9. Excel通配符

    数据科学交流群,群号:189158789 ,欢迎各位对数据科学感兴趣的小伙伴的加入!

  10. tp5项目部署Linux环境后无法访问解决

    一.编辑fastcgi.conf文件 vim /www/server/nginx/conf/fastcgi.conf 二.添加代码 fastcgi_param PHP_ADMIN_VALUE &quo ...