D:共同狂欢
时间限制: 1000ms 内存限制: 131072kB
描述
百度2005年8月5日上市时,在北京和纳斯达克的同学们每一个小时整点时就会通一次电话,对一下表,确认一切相关活动都精确同步。但是要注意,在两边的同学位于不同的时区,在夏时制时,两地时差12小时,因此,每次对表都需要做一下时区转换。你来帮我们完成这个有点麻烦的工作吧。
输入
输入的第一行包括一个整数T(T ≤ 30),表示测试数据的组数;接下去的T行每行包括一个时间,表示两地中的一个地方同学报出的整点的时间,表示成“H:M”的形式,其中H是小时(0 ≤ H < 24,且当H小于10的时候可以表示成1位或者2位的形式)、M是分钟(0 ≤ M < 60,且当M小于10的时候可以表示成1位或者2位)。
输出
每个测试数据输出一行,当是整点对时时,输出时区转换后的小时结果;当不是整点对时时,输出0。
样例输入
4
12:00
01:01
3:00
00:00
样例输出
24
0
15
12
1 # include <iostream> 2 # include <string> 3 4 using std::cin ; 5 using std::cout ; 6 using std::endl ; 7 using std::string ; 8 9 int main( int argc , char **argv ) 10 { 11 int group ; 12 if( cin >> group && group > 0 && group < 31 ) 13 while( group ) 14 { 15 string time ; 16 bool flag = true ; 17 18 if( cin >> time ) 19 { 20 int index , num = 0 ; 21 22 for( index = 0 ; time[index] && time[index] != ':' ; index++ ) 23 { 24 num = num * 10 + time[index] - '0' ; 25 } 26 27 if( time[index] == ':' ) 28 { 29 while( time[++index] ) 30 if( time[index] != '0') flag = false ; 31 32 if( flag && num >= 0 && num < 24) 33 cout << ( num > 12 ? num - 12 : num + 12 ) << endl ; 34 else cout << 0 << endl ; 35 } 36 37 group-- ; 38 } 39 } 40 return 0 ; 41 }