hdu 3219 Jammed Traffic

来源:互联网 发布:矩阵的迹与特征值 编辑:程序博客网 时间:2024/05/16 07:56

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3219

题目意思:某人去上班,上班的路上分为n段每段都有标志,也就是总共n+1处标志,第一个标志是他上车的地方,第n+1个标志就是他工作的地方也就是目的地。在每某段 i 中给定某个时间段,在这段时间里为交通阻塞期,正常通过第 i 段需花费 a[i]的时间,若赶上阻塞期则需多花费b[i]的时间。

告诉你每段的情况,问你后他能否准时到达工作地。

这个题有几个注意事项:在阻塞期的开始和结束时间为开区间,到达的时间为闭区间,另外这里的时间都为一天内的情况,若时间大于24点说明晚了一天。

代码如下:


#include <iostream>#include <cstdio>using namespace std;int zhengc[101],yanchi[101];int times[101],timee[101];int ts,te;int main(){int n;while(scanf("%d",&n)&&n){int a,b,c,d,i;for(i=1;i<=n;i++){scanf("%d%d",&zhengc[i],&yanchi[i]);yanchi[i]+=zhengc[i];scanf("%d:%d %d:%d",&a,&b,&c,&d);times[i]=a*60+b;timee[i]=c*60+d;}scanf("%d:%d %d:%d",&a,&b,&c,&d);ts=a*60+b;te=c*60+d;bool mark=true;int tt;for(i=1;i<=n;i++){tt=ts+zhengc[i];if(tt>=1440){mark=false;break;}            if(tt<=times[i] || ts>=timee[i]){ts+=zhengc[i];if(ts>=te || ts>=1440){mark=false;break;}}else{ts+=yanchi[i];if(ts>=te || ts>=1440){mark=false;break;}}}if(mark){if(ts<te){printf("Lucky YY!\n");}else{printf("Poor YY!\n");}}else{printf("Poor YY!\n");}}return 0;}


原创粉丝点击