ACM2033

/**人见人爱A+B
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 18567    Accepted Submission(s): 12203


Problem Description
HDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给
大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱。
这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比
如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。

 

Input
输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,
每行有6个整数AH,AM,AS,BH,BM,BS,分别表示时间A和B所对应的时分秒。题目保证所有的数据合法。

 

Output
对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则
(即:分和秒的取值范围在0~59),每个输出占一行,并且所有的部分都可以用32位整数表示。
 

Sample Input
2
1 2 3 4 5 6
34 45 56 12 23 34
 

Sample Output
5 7 9
47 9 30
*/
#include<iostream>
int main()
{
    using namespace std;
    unsigned t,a[3],b[3];
    cin>>t;
    while(t--)
    {
        for(int i=0;i<3;++i)
            cin>>a[i];
        for(int i=0;i<3;++i)
            {
                cin>>b[i];
                a[i]+=b[i];
                
                
            }
        if(a[1]/60>0)    //超过60分名,则小时要加一(0-59)
        {
            a[0]+=1;
            a[1]%=60;
        }
        if(a[2]/60>0)    //超过60秒,则要加一(0-59)
        {
            a[1]+=1;
            a[2]%=60;
        }
            cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;    //这个是固定的格式,这可以AC    
    }
    return 0;
}
/*
//这是另 一个例子,但有同样的效果 
#include<stdio.h>
int main()
{
int i;
int a[10],n;
scanf("%d",&n);

while(n--)
{
   for(i=0;i<6;i++)
scanf("%d",&a[i]);
a[0]+=a[3];
a[1]+=a[4];
a[2]+=a[5];
if(a[2]>=60)
   {
    a[2]=a[2]%60;
    a[1]++;
   }
   if(a[1]>=60)
   {
    a[1]=a[1]%60;
    a[0]++;
   }
   printf("%d %d %d\n",a[0],a[1],a[2]);
   
}
return 0;

}
*/

 

posted @ 2013-07-09 16:03  Talbot3  阅读(292)  评论(0编辑  收藏  举报