BUPT復試專題—統計時間間隔(2013計院)
阿新 • • 發佈:2018-03-28
stream class 過多 輸入 can element AI while ram
題目描述
給出兩個時間(24小時制),求第一個時間至少要經過多久才能到達第二個時間。給出的時間一定滿足的形式,其中x和y分別代表小時和分鐘。0≤x<24,0≤y<60。
輸入格式
第一行為數據組數T(1≤T≤50000)。
每組數據包括兩行,分別代表兩個時間
輸出格式
每組數據輸出一行,表示最少經過的分鐘數。
輸入樣例
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計院)