WUST Online Judge - 2147: 与时间赛跑

2147: 与时间赛跑

Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
Submitted: 1100  Accepted: 142
[Submit][Status][Web Board]

Description

orz做了一个奇怪的梦,他梦见自己在一个钟面上所在的位置为t1,目标位置为t2(t1和t2都为整点,且不相等)。时钟的钟面上有三根指针——时(h),分(m),秒(s)。
时钟的三根指针都很长,因此orz不能绕过或跨过指针。
求orz是否能从t1移动到t2。

Input

多组测试,每组输入5个整数h,m,s,t1,t2 (1≤h≤12,0≤m,s≤59,1≤t1,t2≤12,t1≠t2)。输入保证三根指针的位置不会和t1或t2重合。

Output

如果orz能到达t2输出Yes,否则输出NO

Sample Input

12 30 45 3 11

Sample Output

NO

Author

lsc

代码如下:

#include <stdio.h>

int main() {
    double h, m, s, t1, t2, t;
    while (scanf("%lf%lf%lf%lf%lf", &h, &m, &s, &t1, &t2) != EOF) {
        if (t1 > t2) {
            t = t1;
            t1 = t2;
            t2 = t;
        }
        if (h == 12) h = 0;
        m = m + s / 60.0; h = h + m / 60.0;
        if (m >= 60) m /= 60;
        else if(m < 60) m /= 5;
        if (s >= 60) s /= 60;
        else if(s < 60) s /= 5;
        if ((h < t1 || h > t2) && (m < t1 || m > t2) && (s < t1 || s > t2))
            printf("Yes\n");
        else if (h > t1 && m > t1 && s > t1 && h < t2 && m < t2 && s < t2)
            printf("Yes\n");
        else printf("NO\n");
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/mcr-tcp/p/9170685.html
今日推荐