POJ 2565

模拟,照着说的做就行了。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const double eps=1e-8;
struct data
{
    int h,m,s;
    double tot,speed;
    data(int _h,int _m,int _s)
    {
        h=_h;m=_m;s=_s;
        tot=_h*60+_m+_s/60.0;
        speed=0;
    }
    data(){}
    void print()
    {
        if(speed<eps)
            printf("-\n");
        else
        {
            speed+=1/120.0;
            int a=(int)speed,b=(int)(60.0*(speed-(int)speed));
            printf("%d:",a);
            if(b<10)
                printf("0%d min/km\n",b);
            else
                printf("%d min/km\n",b);
        }
    }
    data operator+(const data &b)const
    {
        data a;
        a.h=h+b.h;
        a.m=m+b.m;
        a.s=s+b.s;
        a.tot=a.h*60.0+a.m+a.s/60.0;
        a.speed=0;
        return a;
    }
};
int main()
{
    int n,id;
    double d;
    scanf("%d%lf",&n,&d);
    while(scanf("%d",&id)!=EOF)
    {
        data a(0,0,0);
        int h,m,s;
        printf("%3d: ",id);
        bool flag=false;
        for(int i=0;i<n;i++)
        {
            char ss[30];
            scanf("%s",ss);
            if(ss[0]=='-'||flag)
            {
                flag=true;
                continue;
            }
            sscanf(ss,"%d:%d:%d",&h,&m,&s);
            a=a+data(h,m,s);
        }
        if(!flag)
            a.speed=a.tot/d;
        a.print();
    }
    return 0;
}

  

转载于:https://www.cnblogs.com/tmeteorj/archive/2012/09/06/2674142.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值