OJ.坐公交

嗨呀好气哦,我忘了我怎么做的了。。。

一遍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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值