Posted on 2012-02-26 20:14
hoshelly 阅读(170)
评论(0) 编辑 收藏 引用 所属分类:
Programming
- 描述
辉辉、姗姗和佳佳是好朋友,他们一起参加了在湖南长沙长郡中学举办的第二十一届全国青少年信息学奥林匹克竞赛(NOI2004)。他们很早就来到了长沙,可是报名还没有开始。怎么办呢?他们决定分头出去玩一天,晚上回到宿舍以后给大家说说自己这一天做了什么有意义的事情。
你一定想不到辉辉干嘛去了——他睡了一天。他想:“比赛前几天老是写程序到深夜,头晕晕的……没关系,好好睡一觉,然后我会精神抖擞。醒了之后,我要做有意义的事情。”这一睡可不得了,辉辉从早上a点b分c秒一直睡到了下午d点e分f秒。他睡了多少秒钟呢?
- 输入
测试数据包含多组输入。 每组输入一行,仅包含六个非负整数a, b, c, d, e, f,以空格分离。1<=a, d<=11, 0<=b, c, e, f<=59。如输入6 5 4 3 2 1表示辉辉从06:05:04睡到15:02:01。 输入以六个零结尾。
- 输出
每组输出一行,仅包含一个整数s,即辉辉睡觉的总秒数。
- 样例输入
6 5 4 3 2 1 0 0 0 0 0 0
- 样例输出
32217
注意秒、分、时之间当不同大小时要进行适当的借1运算
源代码如下(感觉挺丑陋的):
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f;
int h,m,s,sum;
while(cin>>a>>b>>c>>d>>e>>f)
{
if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
break;
if(b>e)//醒来的时刻的分钟数大于睡时的分钟数
{
h=d-a+11;//小时减1
if(c>f)
{
s=f-c+60;
m=e-b+59;
}
else
{
s=f-c;
m=e-b+60;
}
}
else if(b<e)
{
h=d-a+12;
if(c>f)
{
s=f-c+60;
m=e-b-1;
}
else
{
s=f-c;
m=e-b;
}
}
else if(b==e)
{
if(c>f)
{
h=d-a+11;
m=e-b+59;
s=f-c+60;
}
else
{
h=d-a+12;
m=e-b;
s=f-c;
}
}
sum=h*3600+m*60+s;//全部换算成统一单位——秒
cout<<sum<<endl;
}
return 0;
}