您的位置:首页 > 大数据 > 人工智能

Codeforces 868B. Race Against Time 模拟

2017-10-06 10:52 393 查看

题意

给定5个数 h, m, s, t1, t2 (1 ≤ h ≤ 12, 0 ≤ m, s ≤ 59, 1 ≤ t1, t2 ≤ 12, t1 ≠ t2).

分别代表时,分,秒,起始位置,终止位置.

询问是否能在表盘上不跨越表针地从起始位置走到终止位置,表针无限长.

位置和指针均不重合.

解法

注意时针会被分和秒影响,分针会被秒影响.所以h可以等于t1,此时h仍在t1之后.

只需要考虑两个位置之间一侧是否0个或三个指针即可.

代码

/* LittleFall : Hello! */
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int h,m,s,t1,t2,ans=0;
scanf("%d%d%d%d%d",&h,&m,&s,&t1,&t2);
if(t1>t2)
swap(t1,t2);
if(h>=t1&&h<t2)
ans++;
if(m>=t1*5&&m<t2*5)
ans++;
if(s>=t1*5&&s<t2*5)
ans++;
if(ans==0||ans==3)
printf("YES\n");
else
printf("NO\n");
return 0;
}


重写时间:2分钟.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: