time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

On vacations n pupils decided to go on excursion and gather all together. They need to overcome the path with the length l meters. Each of the pupils will go with the speed equal to v1. To get to the excursion quickly, it was decided to rent a bus, which has seats for k people (it means that it can’t fit more than k people at the same time) and the speed equal to v2. In order to avoid seasick, each of the pupils want to get into the bus no more than once.

Determine the minimum time required for all n pupils to reach the place of excursion. Consider that the embarkation and disembarkation of passengers, as well as the reversal of the bus, take place immediately and this time can be neglected.

Input

The first line of the input contains five positive integers n, l, v1, v2 and k (1 ≤ n ≤ 10 000, 1 ≤ l ≤ 109, 1 ≤ v1 < v2 ≤ 109, 1 ≤ k ≤ n) — the number of pupils, the distance from meeting to the place of excursion, the speed of each pupil, the speed of bus and the number of seats in the bus.

Output

Print the real number — the minimum time in which all pupils can reach the place of excursion. Your answer will be considered correct if its absolute or relative error won’t exceed 10 - 6.

Examples

input

5 10 1 2 5

output

5.0000000000

input

3 6 1 2 1

output

4.7142857143

Note

In the first sample we should immediately put all five pupils to the bus. The speed of the bus equals 2 and the distance is equal to 10, so the pupils will reach the place of excursion in time 10 / 2 = 5.

题解



数学问题.

最后的时间取决于最后一拨到终点的人的时间.

因此肯定是这样:先将一波人载到终点前的某个位置。

然后这辆车再回来载另外一拨人。然后两拨人(方便起见先假设只要载两次就能载完)同时到达终点。

这样是最优的方案。

可以肯定每个人在车上的时间是相同的,且所有人同时到达终点。

可以这么理解:

假如每个人在车上的时间不同。

最后一波人到终点的时候,假设有人先到了终点则总是可以调整那堆人少坐一会车,最后这波人多做一会车。

最后每个人在车上的时间就是相同的了,且所有人都能够同时到达终点。

同时到达可以这么理解,设所有人在车上经过的路程为g,则 (l-g)/v1 + g/v2为每个人最后到达的时间。如果在车上的时间相同则g相同,那么最后的时间也就相同了(l,v1,v2都是确定的量);

因为所有人在车上的时间是相同的。

则设所有人在车上经过的路程为g,一辆车从接到一波人开始,一直到它返回又接到第二波人的时间间隔为△t;第二拨人原来的位置

为x,等车又返回载它们的时候位置变成x+△t*v1

则有

x+△t*v1=x+g-(△t-g/v2)*v2; ····①

右边的(△t-g/v2)是这辆车接人到一个合适的位置后又往回走的距离;

根据①式可得

△t=(2g)/(v1+v2); ·····②

设r = (n/k)+((n%k)?1:0);

这个r就是这辆车需要载的趟数

则有

△t*(r-1)+g/v2 = (l-g)/v1 + g/v2; ····③

左边是车到达的时间,右边是人到达的时间;

(l-g)/v1就是每波人走路的时间了,g/v则是在车上的时间

右边r-1表示需要往返r-1次,然后最后一次直接把最后一拨人载到终点即可

由③式可得

g= l(v1+v2)/(2*v1(r-1)+v1+v2);

答案就是(l-g)/v1 + g/v2;

#include <cstdio>

int n,k,r;
double l, v1, v2; int main()
{
scanf("%d%lf%lf%lf%d", &n, &l, &v1, &v2, &k);
r = n / k + ((n%k) ? 1 : 0);
double g = (l*(v1 + v2)) / (2 * v1*((r - 1)*1.0) + v1 + v2);
double ans = (l - g) / v1 + g / v2;
printf("%.10lf\n", ans);
return 0;
}

【45.61%】【codeforces 701D】As Fast As Possible的更多相关文章

  1. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  2. codeforces 701D D. As Fast As Possible(数学)

    题目链接: D. As Fast As Possible time limit per test 1 second memory limit per test 256 megabytes input ...

  3. 【45.65%】【codeforces 560B】Gerald is into Art

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 【codeforces 750D】New Year and Fireworks

    time limit per test2.5 seconds memory limit per test256 megabytes inputstandard input outputstandard ...

  5. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  6. 【搜索】【并查集】Codeforces 691D Swaps in Permutation

    题目链接: http://codeforces.com/problemset/problem/691/D 题目大意: 给一个1到N的排列,M个操作(1<=N,M<=106),每个操作可以交 ...

  7. 【中途相遇法】【STL】BAPC2014 K Key to Knowledge (Codeforces GYM 100526)

    题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...

  8. 【链表】【模拟】Codeforces 706E Working routine

    题目链接: http://codeforces.com/problemset/problem/706/E 题目大意: 给一个N*M的矩阵,Q个操作,每次把两个同样大小的子矩阵交换,子矩阵左上角坐标分别 ...

  9. 【数论】【扩展欧几里得】Codeforces 710D Two Arithmetic Progressions

    题目链接: http://codeforces.com/problemset/problem/710/D 题目大意: 两个等差数列a1x+b1和a2x+b2,求L到R区间内重叠的点有几个. 0 < ...

随机推荐

  1. POJ 1466 Girls and Boys (ZOJ 1137 )最大独立点集

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=137 http://poj.org/problem?id=1466 题目大意: ...

  2. React-Native_02:语法篇

    1.简单介绍 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式公布了.它的目标.是使得JavaScript语言能够用来编写复杂的大型应用程 ...

  3. 让自己的软件实现拖拽打开文件(覆盖WM_DROPFILES,使用DragQueryFile,DragFinish API函数)

    作者: 帅宏军 //声明 protected    procedure WMDROPFILES(var Msg : TMessage); message WM_DROPFILES; --------- ...

  4. asp.net获取客户真实ip非代理ip:

    public string GetUserIP()   {       string _userIP;       if(Request.ServerVariables["HTTP_VIA& ...

  5. 每日技术总结:promise,express route,评分,local storage商品浏览历史,

    最近正在用Vue做一个电商项目.利用工作前后空隙时间. 1.promise的使用 点这里 如何在实际项目中使用Promise 2. Express Route 前后端传参的两种方法 (1)req.pa ...

  6. UVA 11178 - Morley's Theorem 向量

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  7. Web网站架构演变—高并发、大数据

    转 Web网站架构演变—高并发.大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系 ...

  8. 快速理解Java中的五种单例模式(转)

    解法一:只适合单线程环境(不好) package test; /** * @author xiaoping * */ public class Singleton { private static S ...

  9. Android 系统状态栏一体化实现

    自上周更新了QQ手机client.对于新版本号的QQ,系统状态栏也有蓝色色调,看起来有种清爽感觉.于是想自已也实现这样的效果,随查阅资料,自已调试实现这样的效果.Android 系统4.4以上都能够具 ...

  10. Java反射学习总结终(使用反射和注解模拟JUnit单元测试框架)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看. ...