hdu 1861 游船出租

hdu 1861 游船出租


传送门

题意

给定n条租船与还船信息,求完整记录的租借次数,与平均时间

题解

用一个数组记录每个船号的借船时间,当还船的时间,首先判断是否借船,
如果存在借船,就计数++,并计算时间差计入总和中

源代码

#include<cstdio>
const int maxn = 102;

inline int ti(int h,int m){
    return h*60+m;
}

int a[maxn];//记录是否借船,并保存借船的时间
//初始化为-1,不能为0,时间可为00:00

int main(){
    int no,h,m;
    char c;
    int ans=0,t=0;
    for(int i=0;i<maxn;++i)a[i]=-1;
    while(~scanf("%d",&no)){
        if(no==-1)break;
        getchar();//忽略掉数字与字符之间的空格
        scanf("%c%d:%d",&c,&h,&m);
        if(no==0){
            if(ans)printf("%d %d\n",ans,int(t*1.0/ans+0.5));
            // t*1.0/ans+0.5 进位,利用向下取整的性质
            else printf("0 0\n");
            //为下次案例初始化
            for(int i=0;i<maxn;++i)a[i]=-1;
            ans=t=0;
        }
        if(c=='S')a[no]=ti(h,m);
        else {
            if(a[no]==-1)continue;
            ans++;
            t+=ti(h,m)-a[no];
            a[no]=-1;
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值