2020.12.20-Codeforces Round #105补题

B - Escape

The princess is going to escape the dragon's cave, and she needs to plan it carefully.

The princess runs at vp miles per hour, and the dragon flies at vd miles per hour. The dragon will discover the escape after t hours and will chase the princess immediately. Looks like there's no chance to success, but the princess noticed that the dragon is very greedy and not too smart. To delay him, the princess decides to borrow a couple of bijous from his treasury. Once the dragon overtakes the princess, she will drop one bijou to distract him. In this case he will stop, pick up the item, return to the cave and spend f hours to straighten the things out in the treasury. Only after this will he resume the chase again from the very beginning.

The princess is going to run on the straight. The distance between the cave and the king's castle she's aiming for is c miles. How many bijous will she need to take from the treasury to be able to reach the castle? If the dragon overtakes the princess at exactly the same moment she has reached the castle, we assume that she reached the castle before the dragon reached her, and doesn't need an extra bijou to hold him off.

Input

The input data contains integers vp, vd, t, f and c, one per line (1 ≤ vp, vd ≤ 100, 1 ≤ t, f ≤ 10, 1 ≤ c ≤ 1000).

Output

Output the minimal number of bijous required for the escape to succeed.

Examples

Input
1
2
1
1
10
Output
2
Input
1
2
1
1
8
Output
1

Note

In the first case one hour after the escape the dragon will discover it, and the princess will be 1 mile away from the cave. In two hours the dragon will overtake the princess 2 miles away from the cave, and she will need to drop the first bijou. Return to the cave and fixing the treasury will take the dragon two more hours; meanwhile the princess will be 4 miles away from the cave. Next time the dragon will overtake the princess 8 miles away from the cave, and she will need the second bijou, but after this she will reach the castle without any further trouble.

The second case is similar to the first one, but the second time the dragon overtakes the princess when she has reached the castle, and she won't need the second bijou.

一开始做的时候没读懂题意,没有理清他们之间的关系,就去看了其他题,然后又回来做这道题,真的是必须要写一写就可以弄清楚各个变量之间的关系了,但是我最后做了三次,前两次直接wa了,第三次在测试点44上超时,其实还是没有理清思路就下手写,然后就越来越乱。最后要注意变量类型要设为double型。

题解:公主以vp的速度逃跑,龙以vd的速度去追赶,公主出发t时间后龙才出发,如果龙追上了公主,公主便扔下一个珠宝使龙以原速度回到出发点,并且龙还需要f时间整理它的洞穴后才可以再次出发。公主与终点距离为c,只要公主到达终点龙就追不上公主,求公主需要使用多少次珠宝。

思路:如果龙的速度小于公主的速度就永远追不上,所以只需要计算每次龙追上公主的时间,再将距离和终点进行比较。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double vd,vp,f,t,c,num=0;  //注意类型要设为double
    scanf("%lf%lf%lf%lf%lf",&vp,&vd,&t,&f,&c);
    if(vd<vp)
    {
        cout<<"0"<<endl;
    }
    else
    {
        int ct=0;
        double sum=vp*t;
        while(1)
        {
            double tt=sum*1.0/(vd-vp);//龙追上公主所用的时间
            sum+=vp*tt;//龙追上公主时公主所走的路程
            if(sum>=c)break;
            else
            {
                ct++;
                sum+=vp*(f+tt);//公主扔下一枚珠宝,龙返回以及整理所用时间下公主所走的总路程
            }
        }
        cout<<ct<<endl;
    }
}

 

posted @ 2020-12-27 18:57  西瓜0  阅读(55)  评论(0编辑  收藏  举报