Time Zone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2391 Accepted Submission(s): 754
Problem Description Chiaki often participates in international competitive programming contests. The time zone becomes a big problem. Given a time in Beijing time (UTC +8), Chiaki would like to know the time in another time zone s . Input There are multiple test cases. The first line of input contains an integer T (1≤T≤106 ), indicating the number of test cases. For each test case: The first line contains two integers a , b (0≤a≤23,0≤b≤59 ) and a string s in the format of "UTC+X'', "UTC-X'', "UTC+X.Y'', or "UTC-X.Y'' (0≤X,X.Y≤14,0≤Y≤9 ). Output For each test, output the time in the format of hh:mm (24-hour clock). Sample Input 3 11 11 UTC+8 11 12 UTC+9 11 23 UTC+0 Sample Output 11:11 12:12 03:23 Source 2018 Multi-University Training Contest 1 Recommend liuyiding | We have carefully selected several similar problems for you: 6318 6317 6316 6315 6314 单纯的暴力 #include<stdio.h> #include<string.h> #include<math.h> int main() { int t,m,n,i; int hour,mintu,j,flag=0; char s1[20],s2[20]; scanf("%d",&t); while(t--) { j=0,m=0,n=0; memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); scanf("%d %d %s",&hour,&mintu,s2); for(i=4; i<strlen(s2); i++) { s1[j++]=s2[i]; } for(i=0; i<strlen(s1); i++) { if(s1[i]=='.') { flag=1; break; } } if(flag==1) { sscanf(s1,"%d.%d",&m,&n);m为小时,n为分钟 } else { for(i=0; i<strlen(s1); i++) { m=m*10+(s1[i]-'0');把字符变为数字 } n=0; } if (s2[3] == '+') { n = n * 6;把小时变为分钟 mintu = mintu + n; if (mintu >= 60) { mintu -= 60; hour++; } hour = hour + m - 8; if (hour >= 24) { hour = hour - 24; } if (hour < 0) { hour = hour + 24; } } if(s2[3]=='-') { n=n*6; mintu=mintu-n; if(mintu<0) { mintu+=60; hour--; } hour=hour-m-8; if(hour<0) { hour=hour+24; } } printf("%02d:%02d\n",hour,mintu); } return 0; } |