您的位置:首页 > 编程语言 > C语言/C++

OJ.坐公交

2016-12-14 21:23 232 查看
嗨呀好气哦,我忘了我怎么做的了。。。

一遍AC,第二天我居然想不起来怎么做的了,老了老了

小明在一站台坐公交车去上班,已知公交车每在一个站台上停靠就会耗费一定时间,告诉你小明离上班还剩下的时间, 
你告诉我小明会迟到吗?

多组测试数据。每组测试数据有n+1行。 
第1行有三个整数n,t1,t2,表示车上一共有n个乘客,和公交车每次停靠站台需要耗费t1分钟、公交车每两站之间行驶需要 
的时间t2分钟. 
第2行两个整数m,T,表示小明在第m站台下,离上班还剩下T分钟. 
第3行到第n+1行每行有1个整数表示剩下n-1个乘客各自下车的站台数.

Yes
或者 No 表示小明会不会迟到(第T分钟刚好到达不算迟到,且小明下车那个站台不需要计算额外停车耗时)

6 1 2

4 9

2

2

3

4

5
-----

No

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n,t1,t2;
int m,t;
int sta[1005];
int s;
int time;
while(~scanf("%d %d %d",&n,&t1,&t2))//n表示有n个乘客,t1表示停顿时间,t2表示行驶时间
{
memset(sta,0,sizeof(sta));
time=0;
scanf("%d %d",&m,&t);//m表示小明要下车的站数,t表示离上班还剩的时间
int i;
for(i=1;i<=n-1;i++)
{
scanf("%d",&s);
sta[s]=1;
}
for(i=1;i<=m;i++)
{
if(sta[i]==1 && i!=1 && i!=m)
time+=t1;

}
//time-=t1;
time+=(m-1)*t2;
if(time<=t)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言