1. 程式人生 > >BUPT復試專題—統計時間間隔(2013計院)

BUPT復試專題—統計時間間隔(2013計院)

stream class 過多 輸入 can element AI while ram

題目描述

給出兩個時間(24小時制),求第一個時間至少要經過多久才能到達第二個時間。給出的時間一定滿足的形式,其中xy分別代表小時和分鐘。0x<24,0y<60

輸入格式

第一行為數據組數T(1T50000)。
每組數據包括兩行,分別代表兩個時間

輸出格式

每組數據輸出一行,表示最少經過的分鐘數。

輸入樣例

2
7:00
7:00
7:00
8:00

輸出樣例

0
60

老套路卡string卡cin
#include<iostream>
#include<cstdio>
#include
<cmath> #include<cstring> using namespace std; int deal(char s[],int from,int to) { int i=from,num=s[from]-0; i++; while(true) { if(i<=to) { num=num*10+(s[i]-0); i++; } else break; }
return num; } int main() { int tes,m; while(~scanf("%d",&tes)) { while(tes--) { char s1[8],s2[8]; scanf("%s",s1); scanf("%s",s2); int num=0,pos1,pos2; if(s1[1]==:) pos1=1;
else if(s1[2]==:) pos1=2; if(s2[1]==:) pos2=1; else if(s2[2]==:) pos2=2; int hour1=deal(s1,0,pos1-1); int hour2=deal(s2,0,pos2-1); int minu1=deal(s1,pos1+1,strlen(s1)-1); int minu2=deal(s2,pos2+1,strlen(s2)-1); if(hour1<=hour2) { num+=(hour2-hour1)*60; } else if(hour1>hour2) { num+=(24-(hour1-hour2))*60; } if(minu1<=minu2) { num+=minu2-minu1; } else if(minu1>minu2) { if(num==0) num=24*60; num-=60; num+=(60+minu2)-minu1; } printf("%d\n",num); } } return 0; }

 

BUPT復試專題—統計時間間隔(2013計院)