超大型LED显示屏

来源:互联网 发布:淘宝网银饰品店 编辑:程序博客网 时间:2024/04/28 16:49

Description

Input

输入包含不超过100组数据。每组数据第一行为"START hh:mm:ss",表示比赛开始时刻为hh:mm:ss。最后一行为"END hh:mm:ss",即比赛结束时刻。二者之间至少会有一个SCORE信息,格式为"SCORE hh:mm:ss team score",其中team要么是"home"(主场)要么是"guest"(客场), score表示得分,为1,2或者3。这些信息保证按照时间从早到晚的顺序排列,且任意两条SCORE信息的时刻均不相同。比赛开始时间不会早于9:00,结束时间不会晚于同一天的21:00。注意,如果比赛开始时间为09:00:00,结束时间为09:00:01,比赛长度为1秒钟,而不是2秒钟。

Output

对于每组数据,输出测试点编号和总耗电量。

Sample Input

START 09:00:00SCORE 09:01:05 home 2SCORE 09:10:07 guest 3END 09:15:00START 09:00:00SCORE 10:00:00 home 1SCORE 11:00:00 home 1SCORE 12:00:00 home 1SCORE 13:00:00 home 1SCORE 14:00:00 home 1SCORE 15:00:00 home 1SCORE 16:00:00 home 1SCORE 17:00:00 home 1SCORE 18:00:00 home 1SCORE 19:00:00 home 1SCORE 20:00:00 home 1END 21:00:00

Sample Output

Case 1: 9672

Case 2: 478800

#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int sz[10]={6,2,5,5,4,5,6,3,7,6};int s[1000];long int sum;int a,b,n;int main(){    int i,k;    s[0]=6;    for(i=1;i<1000;i++)    {        s[i]=0;        n=i;        while(n)        {            k=n%10;            n/=10;            s[i]+=sz[k];        }    }    int t,x,y,z;    long int shi,sshi;    char str1[10],str2[10];    t=0;    while(scanf("%s",str1)!=EOF)    {        t++;        a=b=0;        sum=0;        scanf("%d:%d:%d",&x,&y,&z);        shi=x*3600+y*60+z;        while(scanf("%s",str1)&&str1[1]!='N')        {            scanf("%d:%d:%d",&x,&y,&z);            sshi=x*3600+y*60+z;            sum+=((s[a]+s[b])*(sshi-shi));            shi=sshi;            scanf("%s %d",str2,&k);            if(str2[0]=='h')            {                a+=k;            }            else            {                b+=k;            }        }        scanf("%d:%d:%d",&x,&y,&z);        sshi=x*3600+y*60+z;        sum+=((s[a]+s[b])*(sshi-shi));        printf("Case %d: %ld\n",t,sum);    }    return 0;}



0 0