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 }
posted @ 2012-06-02 09:56  crazylhf  阅读(90)  评论(0)    收藏  举报