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. [usaco2010 Oct]Soda Machine

    题目描述 有N个人要去膜拜JZ,他们不知道JZ会出现在哪里,因此每个人有一个活动范围,只要JZ出现在这个范围内就能被膜拜, 伟大的JZ当然希望膜拜他的人越多越好,但是JZ不能分身,因此只能选择一个位置 ...

  2. 如何在 crontab 中让 source ~/.bashrc 生效

    cron 是许多类 Unix 操作系统中都自带的用来调度定时任务的工具,定时任务的配置是写在 crontab 文件中的,但是 crontab 文件不允许直接编辑,一般都是通过命令 crontab -e ...

  3. 【中文】【deplearning.ai】【吴恩达课后作业目录】

    [目录][吴恩达课后作业目录] 吴恩达深度学习相关资源下载地址(蓝奏云) 课程 周数 名称 类型 语言 地址 课程1 - 神经网络和深度学习 第1周 深度学习简介 测验 中英 传送门 无编程作业 编程 ...

  4. pandas高级操作

    pandas高级操作 import numpy as np import pandas as pd from pandas import DataFrame,Series 替换操作 替换操作可以同步作 ...

  5. Mac下IDEA激活Jrebel

    第一步:在idea中下载jrebel,过程省略 第二步:配置反向代理工具 Windows 版:http://blog.lanyus.com/archives/317.html MAC 版: 安装hom ...

  6. grpc-metadata

    https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md https://github.com/grpc/g ...

  7. The Go Blog Getting to Go: The Journey of Go's Garbage Collector

    Getting to Go: The Journey of Go's Garbage Collector https://blog.golang.org/ismmkeynote

  8. koa2+koa-generator+mysql快速搭建nodejs服务器

    koa2+koa-generator+mysql快速搭建nodejs服务器 用koa的脚手架koa-generator可以快速生成项目骨架,可以用于发开或者测试接口 https://github.co ...

  9. GitLab开发流程图示、Git命令一张图

    GitLab开发流程图示.Git命令一张图 一.GitLab开发流程图示 二.Git命令一张图 作图工具:ProcessOn 一.GitLab开发流程图示 二.Git命令一张图

  10. Docker运行Mysql,Redis,SpringBoot项目

    Docker运行Mysql,Redis,SpringBoot项目 1.docker运行mysql 1.1拉取镜像 1.2启动容器 1.3进入容器 1.4开启mysql 1.5设置远程连接 1.6查看版 ...