2401. Judges' Time Calculation
Constraints
Time Limit: 1 secs, Memory Limit: 256 MB
Description
When a problem is submitted with a given time-stamp, they determine which row of the table to use, based upon the hour of the time-stamp. Then, the formula in the right column is used to compute the number of elapsed minutes. For example, with a submission time of 12:39, the top row is applied with XX=39, leading to the elapsed minutes calculated as 39 - 30 = 9 . For a program submitted at 3:21, the fourth row is used to calculate 21 + 150 = 171 elapsed minutes.
Input
The input starts with a line containing a single integer 1 ≤ N ≤ 30 that is the number of cases. Following this are N lines, with each line containing integral values SH, SM, DH, DM separated by spaces. The values 1 ≤ SH ≤ 12 and 0 ≤ SM ≤ 59 respectively represent the hour and minute at which a contest starts. The values 0 ≤ DH ≤ 10 and 0 ≤ DM ≤ 59 represent the duration of the contest in terms of hours and minutes. A contest will last at least 1 minute and at most 10 hours and 59 minutes. This allows us to omit any A.M. or P.M. designations for the times.
Output
Sample Input
3 12 30 5 0 7 0 2 59 9 59 4 1
Sample Output
------+--------- time | elapsed ------+--------- 12:XX | XX - 30 1:XX | XX + 30 2:XX | XX + 90 3:XX | XX + 150 4:XX | XX + 210 5:XX | XX + 270 ------+--------- time | elapsed ------+--------- 7:XX | XX 8:XX | XX + 60 9:XX | XX + 120 ------+--------- time | elapsed ------+--------- 9:XX | XX - 59 10:XX | XX + 1 11:XX | XX + 61 12:XX | XX + 121 1:XX | XX + 181 2:XX | XX + 241
Problem Source
每周一赛第四场
我是水题爆刷者。。。
#include <stdio.h>
int main() {
int n, sh, sm, lh, lm, lm_sum, eh;
scanf("%d", &n);
while (n--) {
scanf("%d%d%d%d", &sh, &sm, &lh, &lm);
lm_sum = lh * 60 + lm;
eh = sh + (lm_sum + sm) / 60;
printf("------+---------\n time | elapsed\n------+---------\n");
for (int i = sh; i <= eh; i++) {
int out_i;
out_i = (i - 1) % 12 + 1;
printf("%2d:XX | XX", out_i);
if (i == sh)
if (sm == 0)
printf("\n");
else
printf(" - %d\n", sm);
else
printf(" + %d\n", (60 - sm) + (i - sh - 1) * 60);
}
}
return 0;
}