Test Message

d985: Gran Turismo 5

內容

最近,

學姊籌錢買了一片 Gran Turismo 5 回家做賽車夢,

又另外買了 G27 方向盤,

但在賽車場上的表現始終不如人意。

img1

“車,不是這麼開的。”

說完爸爸接過了方向盤,

將記錄一次又一次的刷新。

給你每一圈的時間紀錄,

請算出 Best Lap 與平均時間。

我一定要成為車神!


輸入

第一行有一個數字 N (0 < N ≤ 10)

代表接下來有 N 組測試資料

每組測試資料第一行有一個數字 M (0 < M ≤ 100)

接著有 M 行資料

每行兩個數字 A, B (0 ≤ A, B ≤ 60)

代表該圈所花費時間為 A 分 B 秒

3
4
1 54
2 02
1 58
1 50
3
1 23
1 42
1 37
5
3 00
2 56
3 04
2 50
3 01

輸出

Track X:

Best Lap: X minute(s) X second(s).

Average: X minute(s) X second(s).

Average 為整數,小數部份無條件捨去

詳請參考範例測資

Track 1:
Best Lap: 1 minute(s) 50 second(s).
Average: 1 minute(s) 56 second(s).

Track 2:
Best Lap: 1 minute(s) 23 second(s).
Average: 1 minute(s) 34 second(s).

Track 3:
Best Lap: 2 minute(s) 50 second(s).
Average: 2 minute(s) 58 second(s).


解題思路

將時間轉成秒來比較,取得最佳和平均秒數後再將秒格式化回去輸出即可。


完整程式碼

AC (2ms, 108KB)
#include<stdio.h>

int main()
{
int track, lap, time, best, sum, min, sec;
while (scanf(" %d", &track) == 1)
{
for (int t = 1; t <= track; t++)
{
best = 999999, sum = 0;
scanf(" %d", &lap);
for (int l = 0; l < lap; l++)
{
scanf(" %d %d", &min, &sec);
time = min * 60 + sec;
if (time < best)
best = time;
sum += time;
}
sum /= lap;
printf("Track %d:\n", t);
printf("Best Lap: %d minute(s) %d second(s).\n", best / 60, best % 60);
printf("Average: %d minute(s) %d second(s).\n\n", sum / 60, sum % 60);
}
}
return 0;
}