csu 1507: 超大型LED显示屏(要重新敲一遍)

下面这个是第一次的代码,太挫了,要重新写一个思路清晰的。



#include<cstdio>
int pre[]= {6,2,5,5,4,5,6,3,7,6};
char a[20],b[20],c[20],d[20],e[20];
int score;
int main(void)
{
    int ct=1;
    while(~scanf("%s%s",a,b))
    {
        int ans1=0,ans2=0,s1=0,s2=0;
        int flag=1,cnt=1;
        while(true)
        {
            if(flag)
            {
                scanf("%s%s",c,d);
                flag=0;
                if(c[0]=='E') cnt=0;
                if(cnt)
                {
                    scanf("%s%d",e,&score);
                }
                int m1=((d[0]*10+d[1])-(b[0]*10+b[1]))*3600;
                int m2=((d[3]*10+d[4])-(b[3]*10+b[4]))*60;
                int m3=((d[6]*10+d[7])-(b[6]*10+b[7]));
                int m=m1+m2+m3;
                if(s1==0) ans1+=m*pre[0];
                else
                {
                    int num=s1;
                    while(num>0)
                    {
                        int a=num%10;
                        ans1+=m*pre[a];
                        num/=10;
                    }
                }
                if(s2==0) ans2+=m*pre[0];
                else
                {
                    int num=s2;
                    while(num>0)
                    {
                        int a=num%10;
                        ans2+=m*pre[a];
                        num/=10;
                    }
                }
                if(!cnt) break;
                if(cnt)
                {
                    if(e[0]=='h') s1+=score;
                    else s2+=score;
                }
            }
            else
            {
                scanf("%s%s",a,b);
                flag=1;
                if(a[0]=='E') cnt=0;
                if(cnt)
                {
                    scanf("%s%d",e,&score);
                }
                int m1=((b[0]*10+b[1])-(d[0]*10+d[1]))*3600;
                int m2=((b[3]*10+b[4])-(d[3]*10+d[4]))*60;
                int m3=((b[6]*10+b[7])-(d[6]*10+d[7]));
                int m=m1+m2+m3;
                if(s1==0) ans1+=m*pre[0];
                else
                {
                    int num=s1;
                    while(num>0)
                    {
                        int a=num%10;
                        ans1+=m*pre[a];
                        num/=10;
                    }
                }
                if(s2==0) ans2+=m*pre[0];
                else
                {
                    int num=s2;
                    while(num>0)
                    {
                        int a=num%10;
                        ans2+=m*pre[a];
                        num/=10;
                    }
                }
                if(!cnt) break;
                if(cnt)
                {
                    if(e[0]=='h') s1+=score;
                    else s2+=score;
                }
            }
        }
        printf("Case %d: %d\n",ct++,ans1+ans2);
    }
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值