2016郑州大学ACM/ICPC训练赛 B 追踪术

Description
  赏金猎人在追捕他的猎物。已知当前赏金猎人与猎物相距s米,赏金猎人每秒移动a米,猎物每秒移动c米。赏金猎人有一个技能追踪术,使用后,他的移动速度将会变为每秒移动b米(b>a),使用该技能需要持续施法t秒,持续施法期间,赏金猎人不能移动。请问,赏金猎人最快需要多长时间才能追上猎物(与猎物距离为0时视为追上)。

Input
多组数据。
每组5个整数,s,a,b,c,t (1 <= s <= 1000,1<=a < b <= 100,1 <= c <= 100,1 <= t <= 10)。含义见题目。

Output
输出一个数,赏金猎人追上猎物所需最短时间,保留6位小数。若无法追上,输出-1。

Sample Input
10 1 2 1 1
10 1 2 3 1
Sample Output
12.000000
-1
HINT

代码C:

#include <stdio.h>
#define _MAX 65535

int main(int argc, const char * argv[])
{
    int s, a, b, c, t;
    double timeOne, timeTwo, time;
    while (scanf("%d %d %d %d %d", &s, &a, &b, &c, &t) != EOF)
    {
        timeOne = _MAX;
        timeTwo = _MAX;
        if (a > c)
        {
            timeOne = s * 1.0 / (a - c);
        }
        if (b > c)
        {
            timeTwo = (s + c * t) * 1.0 / (b - c) + t;
        }
        time = timeOne > timeTwo ? timeTwo : timeOne;
        if (time == _MAX)
        {
            printf("-1\n");
        }
        else
        {
            printf("%.6f\n", time);
        }
    }
    return 0;
}
这道题是我见过的最水的acm题,有点贪心算法的感觉,只用考虑两种情况,要么不使用技能,要么一开始就使用技能,看看哪个更快,这样子就好了。
全部评论

相关推荐

accaacc:2到4k,不是2k到4k,所以年薪是30块
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务