Posted on 2012-02-26 20:14
hoshelly 閱讀(175)
評論(0) 編輯 收藏 引用 所屬分類:
Programming
- 描述
輝輝、姍姍和佳佳是好朋友,他們一起參加了在湖南長沙長郡中學(xué)舉辦的第二十一屆全國青少年信息學(xué)奧林匹克競賽(NOI2004)。他們很早就來到了長沙,可是報名還沒有開始。怎么辦呢?他們決定分頭出去玩一天,晚上回到宿舍以后給大家說說自己這一天做了什么有意義的事情。
你一定想不到輝輝干嘛去了——他睡了一天。他想:“比賽前幾天老是寫程序到深夜,頭暈暈的……沒關(guān)系,好好睡一覺,然后我會精神抖擻。醒了之后,我要做有意義的事情。”這一睡可不得了,輝輝從早上a點b分c秒一直睡到了下午d點e分f秒。他睡了多少秒鐘呢?
- 輸入
測試數(shù)據(jù)包含多組輸入。 每組輸入一行,僅包含六個非負整數(shù)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。 輸入以六個零結(jié)尾。
- 輸出
每組輸出一行,僅包含一個整數(shù)s,即輝輝睡覺的總秒數(shù)。
- 樣例輸入
6 5 4 3 2 1 0 0 0 0 0 0
- 樣例輸出
32217
注意秒、分、時之間當不同大小時要進行適當?shù)慕?運算
源代碼如下(感覺挺丑陋的):
#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)//醒來的時刻的分鐘數(shù)大于睡時的分鐘數(shù)
{
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;//全部換算成統(tǒng)一單位——秒
cout<<sum<<endl;
}
return 0;
}