hdu-4510 小Q系列故事——为什么时光不能倒流(比赛被虐的一道水题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4510

如果没记错的话,类似的题已经出现过一次了,上次好像是也是时钟,好像都与12:00有关;

这次也一样h小时对12取余即可。

#include<stdio.h>
int main()
{
    int h,m,s,T,H,M,S;
    scanf("%d",&T);
    while(T--)
    {
        int hh,mm,ss;
        scanf("%d:%d:%d %d:%d:%d",&H,&M,&S,&h,&m,&s);
        int h1 = h % 12;
        if((H>h1)||(H==h1&&M>m)||(H==h1&&M==m&&S>=s))
        {
                if(S>=s) ss=S-s;
                else {ss=S+60-s;M--;}
                if(M>=m) mm=M - m;
                else {mm=M+60-m;H--;}
                if(H>=h1) hh=H-h1;
        }
        else if((h1>H)||(h1==H&&M<m)||(h1==H&&M==m&&s>=S))
        {
            int xx,yy,zz;
            int HH = 12 , SS = 0 , MM =0 ;
            if(SS<s) {xx=60-s;MM--;}
            else xx=0;
            if(MM<m) {yy=MM+60-m,HH--;}
            else yy=0;
            if(HH>=h1) zz=HH-h1;
            ss=(xx+S)%60;
            int k1=(xx+S)/60;
            mm=(yy+M+k1)%60;
            int k2=(yy+M+k1)/60;
            hh=zz+H+k2;
        }
        printf("%02d:%02d:%02d\n",hh,mm,ss);
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值